Only apply default js extensions when using a JS dependencyType

This commit is contained in:
Tobias Koppers 2020-07-13 17:46:50 +02:00
parent 565724a045
commit 336715f878
2 changed files with 328 additions and 39 deletions

View File

@ -691,9 +691,9 @@ const getResolveDefaults = ({
break; break;
} }
const extensions = []; const jsExtensions = [];
if (mjs) extensions.push(".mjs"); if (mjs) jsExtensions.push(".mjs");
extensions.push(".js", ".json", ".wasm"); jsExtensions.push(".js", ".json", ".wasm");
/** @type {function(): ResolveOptions} */ /** @type {function(): ResolveOptions} */
const cjsDeps = () => ({ const cjsDeps = () => ({
@ -701,7 +701,8 @@ const getResolveDefaults = ({
mainFields: webTarget ? ["browser", "module", "..."] : ["module", "..."], mainFields: webTarget ? ["browser", "module", "..."] : ["module", "..."],
conditionNames: webTarget conditionNames: webTarget
? ["require", "module", "browser", "..."] ? ["require", "module", "browser", "..."]
: ["require", "module", "..."] : ["require", "module", "..."],
extensions: [...jsExtensions]
}); });
/** @type {function(): ResolveOptions} */ /** @type {function(): ResolveOptions} */
const esmDeps = () => ({ const esmDeps = () => ({
@ -709,7 +710,8 @@ const getResolveDefaults = ({
mainFields: webTarget ? ["browser", "module", "..."] : ["module", "..."], mainFields: webTarget ? ["browser", "module", "..."] : ["module", "..."],
conditionNames: webTarget conditionNames: webTarget
? ["import", "module", "browser", "..."] ? ["import", "module", "browser", "..."]
: ["import", "module", "..."] : ["import", "module", "..."],
extensions: [...jsExtensions]
}); });
/** @type {ResolveOptions} */ /** @type {ResolveOptions} */
@ -717,8 +719,8 @@ const getResolveDefaults = ({
cache, cache,
modules: ["node_modules"], modules: ["node_modules"],
conditionNames: conditions, conditionNames: conditions,
extensions,
mainFiles: ["index"], mainFiles: ["index"],
extensions: [],
aliasFields: [], aliasFields: [],
exportsFields: ["exports"], exportsFields: ["exports"],
roots: [context], roots: [context],

View File

@ -238,35 +238,152 @@ describe("Defaults", () => {
"recordsInputPath": false, "recordsInputPath": false,
"recordsOutputPath": false, "recordsOutputPath": false,
"resolve": Object { "resolve": Object {
"aliasFields": Array [ "aliasFields": Array [],
"browser",
],
"byDependency": Object { "byDependency": Object {
"amd": Object { "amd": Object {
"aliasFields": Array [
"browser",
],
"conditionNames": Array [ "conditionNames": Array [
"require", "require",
"module", "module",
"browser",
"...",
],
"extensions": Array [
".js",
".json",
".wasm",
],
"mainFields": Array [
"browser",
"module",
"...", "...",
], ],
}, },
"commonjs": Object { "commonjs": Object {
"aliasFields": Array [
"browser",
],
"conditionNames": Array [ "conditionNames": Array [
"require", "require",
"module", "module",
"browser",
"...",
],
"extensions": Array [
".js",
".json",
".wasm",
],
"mainFields": Array [
"browser",
"module",
"...", "...",
], ],
}, },
"esm": Object { "esm": Object {
"aliasFields": Array [
"browser",
],
"conditionNames": Array [ "conditionNames": Array [
"import", "import",
"module", "module",
"browser",
"...",
],
"extensions": Array [
".js",
".json",
".wasm",
],
"mainFields": Array [
"browser",
"module",
"...",
],
},
"loader": Object {
"aliasFields": Array [
"browser",
],
"conditionNames": Array [
"require",
"module",
"browser",
"...",
],
"extensions": Array [
".js",
".json",
".wasm",
],
"mainFields": Array [
"browser",
"module",
"...",
],
},
"undefined": Object {
"aliasFields": Array [
"browser",
],
"conditionNames": Array [
"require",
"module",
"browser",
"...",
],
"extensions": Array [
".js",
".json",
".wasm",
],
"mainFields": Array [
"browser",
"module",
"...",
],
},
"unknown": Object {
"aliasFields": Array [
"browser",
],
"conditionNames": Array [
"require",
"module",
"browser",
"...",
],
"extensions": Array [
".js",
".json",
".wasm",
],
"mainFields": Array [
"browser",
"module",
"...", "...",
], ],
}, },
"wasm": Object { "wasm": Object {
"aliasFields": Array [
"browser",
],
"conditionNames": Array [ "conditionNames": Array [
"import", "import",
"module", "module",
"browser",
"...",
],
"extensions": Array [
".js",
".json",
".wasm",
],
"mainFields": Array [
"browser",
"module",
"...", "...",
], ],
}, },
@ -275,19 +392,12 @@ describe("Defaults", () => {
"conditionNames": Array [ "conditionNames": Array [
"webpack", "webpack",
"production", "production",
"browser",
], ],
"exportsFields": Array [ "exportsFields": Array [
"exports", "exports",
], ],
"extensions": Array [ "extensions": Array [],
".js",
".json",
".wasm",
],
"mainFields": Array [ "mainFields": Array [
"browser",
"module",
"main", "main",
], ],
"mainFiles": Array [ "mainFiles": Array [
@ -557,7 +667,19 @@ describe("Defaults", () => {
+ }, + },
+ ], + ],
@@ ... @@ @@ ... @@
+ ".mjs", + ".mjs",
@@ ... @@
+ ".mjs",
@@ ... @@
+ ".mjs",
@@ ... @@
+ ".mjs",
@@ ... @@
+ ".mjs",
@@ ... @@
+ ".mjs",
@@ ... @@
+ ".mjs",
`) `)
); );
test("output module", { experiments: { outputModule: true } }, e => test("output module", { experiments: { outputModule: true } }, e =>
@ -708,16 +830,71 @@ describe("Defaults", () => {
- "globalObject": "window", - "globalObject": "window",
+ "globalObject": "global", + "globalObject": "global",
@@ ... @@ @@ ... @@
- "aliasFields": Array [ - "aliasFields": Array [
- "browser", - "browser",
- ], - ],
+ "aliasFields": Array [], + "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@ @@ ... @@
- "browser",
+ "node", + "node",
@@ ... @@ @@ ... @@
- "browser",
@@ ... @@
- "target": "web", - "target": "web",
+ "target": "node", + "target": "node",
`) `)
@ -753,17 +930,72 @@ describe("Defaults", () => {
- "globalObject": "window", - "globalObject": "window",
+ "globalObject": "global", + "globalObject": "global",
@@ ... @@ @@ ... @@
- "aliasFields": Array [ - "aliasFields": Array [
- "browser", - "browser",
- ], - ],
+ "aliasFields": Array [], + "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@ @@ ... @@
- "browser",
+ "node", + "node",
+ "electron", + "electron",
@@ ... @@ @@ ... @@
- "browser",
@@ ... @@
- "target": "web", - "target": "web",
+ "target": "electron-main", + "target": "electron-main",
`) `)
@ -777,17 +1009,72 @@ describe("Defaults", () => {
- "globalObject": "window", - "globalObject": "window",
+ "globalObject": "self", + "globalObject": "self",
@@ ... @@ @@ ... @@
- "aliasFields": Array [ - "aliasFields": Array [
- "browser", - "browser",
- ], - ],
+ "aliasFields": Array [], + "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
@@ ... @@ @@ ... @@
- "browser",
+ "node", + "node",
+ "electron", + "electron",
@@ ... @@ @@ ... @@
- "browser",
@@ ... @@
- "target": "web", - "target": "web",
+ "target": "electron-preload", + "target": "electron-preload",
`) `)