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

View File

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