diff --git a/src/index.ts b/src/index.ts index bd6831a..b8b1409 100644 --- a/src/index.ts +++ b/src/index.ts @@ -168,7 +168,11 @@ Module._resolveFilename = function (request, parent, isMain, options) { options, ); } catch (error) { - if ((error as any).code !== 'MODULE_NOT_FOUND') { + const { code } = error as any; + if ( + code !== 'MODULE_NOT_FOUND' + && code !== 'ERR_PACKAGE_PATH_NOT_EXPORTED' + ) { throw error; } } diff --git a/tests/fixtures/node_modules/package-exports/index.js b/tests/fixtures/node_modules/package-exports/index.js new file mode 100644 index 0000000..b7a2033 --- /dev/null +++ b/tests/fixtures/node_modules/package-exports/index.js @@ -0,0 +1,2 @@ +export default 'default export'; +export const namedExport = 'named export'; diff --git a/tests/fixtures/node_modules/package-exports/package.json b/tests/fixtures/node_modules/package-exports/package.json new file mode 100644 index 0000000..02f110a --- /dev/null +++ b/tests/fixtures/node_modules/package-exports/package.json @@ -0,0 +1,6 @@ +{ + "name": "package-exports", + "exports": { + "./index.js": "./index.js" + } +} diff --git a/tests/specs/typescript/dependencies.ts b/tests/specs/typescript/dependencies.ts new file mode 100644 index 0000000..6911fc3 --- /dev/null +++ b/tests/specs/typescript/dependencies.ts @@ -0,0 +1,17 @@ +import { testSuite, expect } from 'manten'; +import type { NodeApis } from '../../utils/node-with-loader'; + +export default testSuite(async ({ describe }, node: NodeApis) => { + describe('Dependencies', ({ describe }) => { + describe('export map', ({ test }) => { + const output = '{"default":"default export","namedExport":"named export"}'; + + test('Require', async () => { + const nodeProcess = await node.require('package-exports/index.js', { + typescript: true, + }); + expect(nodeProcess.stdout).toBe(output); + }); + }); + }); +}); diff --git a/tests/specs/typescript/index.ts b/tests/specs/typescript/index.ts index e0cc531..faecbcf 100644 --- a/tests/specs/typescript/index.ts +++ b/tests/specs/typescript/index.ts @@ -6,6 +6,7 @@ import specJsx from './jsx'; import specMts from './mts'; import specCts from './cts'; import specTsconfig from './tsconfig'; +import specDependencies from './dependencies'; export default testSuite(async ({ describe }, node: NodeApis) => { describe('TypeScript', async ({ runTestSuite }) => { @@ -15,5 +16,6 @@ export default testSuite(async ({ describe }, node: NodeApis) => { runTestSuite(specMts, node); runTestSuite(specCts, node); runTestSuite(specTsconfig, node); + runTestSuite(specDependencies, node); }); });