diff --git a/ext/node_resolver/analyze.rs b/ext/node_resolver/analyze.rs index aea33e29adc132..deb56d064ef909 100644 --- a/ext/node_resolver/analyze.rs +++ b/ext/node_resolver/analyze.rs @@ -196,7 +196,7 @@ impl &referrer, // FIXME(bartlomieju): check if these conditions are okay, probably // should be `deno-require`, because `deno` is already used in `esm_resolver.rs` - &["deno", "require", "default"], + &["deno", "node", "require", "default"], NodeResolutionMode::Execution, ); let reexport_specifier = match result { diff --git a/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/bad.js b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/bad.js new file mode 100644 index 00000000000000..e4f1bed50ee85d --- /dev/null +++ b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/bad.js @@ -0,0 +1,3 @@ +module.exports = { + hello: "bad" +}; \ No newline at end of file diff --git a/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/good.cjs b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/good.cjs new file mode 100644 index 00000000000000..f99f7732aaec78 --- /dev/null +++ b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/good.cjs @@ -0,0 +1,3 @@ +module.exports = { + hello: "from node" +}; \ No newline at end of file diff --git a/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/index.js b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/index.js new file mode 100644 index 00000000000000..a440bdc74466b2 --- /dev/null +++ b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/index.js @@ -0,0 +1,3 @@ +export default { + hello: "default export" +} \ No newline at end of file diff --git a/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/package.json b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/package.json new file mode 100644 index 00000000000000..00a43c78f898d0 --- /dev/null +++ b/tests/registry/npm/@denotest/conditional-exports-node/1.0.0/package.json @@ -0,0 +1,13 @@ +{ + "name": "@denotest/conditional-exports", + "version": "1.0.0", + "type": "module", + "exports": { + ".": { + "node": "./good.cjs", + "require": "./bad.js", + "default": "./index.js" + }, + "./*": "./*" + } +} diff --git a/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/dist/package.cjs.js b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/dist/package.cjs.js new file mode 100644 index 00000000000000..1d1499e2cc2375 --- /dev/null +++ b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/dist/package.cjs.js @@ -0,0 +1,7 @@ +Object.defineProperty(exports, '__esModule', { value: true }); + +const pkg = require("@denotest/conditional-exports-node"); + +Object.keys(pkg).forEach(function (k) { + if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = pkg[k]; +}); \ No newline at end of file diff --git a/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.js b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.js new file mode 100644 index 00000000000000..9f407c0b149f80 --- /dev/null +++ b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.js @@ -0,0 +1 @@ +module.exports = require('./dist/package.cjs.js') \ No newline at end of file diff --git a/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.mjs b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.mjs new file mode 100644 index 00000000000000..3767e9fcdc822d --- /dev/null +++ b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/index.mjs @@ -0,0 +1 @@ +export * from "./index.js"; \ No newline at end of file diff --git a/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/package.json b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/package.json new file mode 100644 index 00000000000000..9a3ef3c84284c7 --- /dev/null +++ b/tests/registry/npm/@denotest/mjs-reexport-cjs/1.0.0/package.json @@ -0,0 +1,11 @@ +{ + "name": "@denotest/mjs-reexport-cjs", + "version": "1.0.0", + "dependencies": { + "@denotest/conditional-exports-node": "*" + }, + "exports": { + "node": "./index.mjs", + "default": "./index.js" + } +} \ No newline at end of file diff --git a/tests/specs/node/cjs_reexport_node_condition/__test__.jsonc b/tests/specs/node/cjs_reexport_node_condition/__test__.jsonc new file mode 100644 index 00000000000000..030f2aa072bc88 --- /dev/null +++ b/tests/specs/node/cjs_reexport_node_condition/__test__.jsonc @@ -0,0 +1,13 @@ +{ + "tempDir": true, + "steps": [ + { + "args": "install", + "output": "[WILDCARD]" + }, + { + "args": "run -A ./main.ts", + "output": "from node\n" + } + ] +} diff --git a/tests/specs/node/cjs_reexport_node_condition/deno.json b/tests/specs/node/cjs_reexport_node_condition/deno.json new file mode 100644 index 00000000000000..fde86a1efb656b --- /dev/null +++ b/tests/specs/node/cjs_reexport_node_condition/deno.json @@ -0,0 +1,3 @@ +{ + "nodeModulesDir": "manual" +} diff --git a/tests/specs/node/cjs_reexport_node_condition/main.ts b/tests/specs/node/cjs_reexport_node_condition/main.ts new file mode 100644 index 00000000000000..09b8418a67d6f5 --- /dev/null +++ b/tests/specs/node/cjs_reexport_node_condition/main.ts @@ -0,0 +1,3 @@ +import { hello } from "@denotest/mjs-reexport-cjs"; + +console.log(hello); diff --git a/tests/specs/node/cjs_reexport_node_condition/package.json b/tests/specs/node/cjs_reexport_node_condition/package.json new file mode 100644 index 00000000000000..85ded5d507f57c --- /dev/null +++ b/tests/specs/node/cjs_reexport_node_condition/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@denotest/mjs-reexport-cjs": "*" + } +}