update enhanced-resolve and webpack-sources

add resolve.preferRelative
set preferRelative for new URL() and new Worker() to fix relative requests
This commit is contained in:
Tobias Koppers 2020-09-28 20:43:03 +02:00
parent 28580af775
commit 4ea79e0683
10 changed files with 131 additions and 12 deletions

View File

@ -1316,6 +1316,10 @@ export interface ResolveOptions {
* Plugins for the resolver.
*/
plugins?: ("..." | ResolvePluginInstance)[];
/**
* Prefer to resolve module requests as relative request and fallback to resolving as module.
*/
preferRelative?: boolean;
/**
* Custom resolver.
*/

View File

@ -966,6 +966,13 @@ const getResolveDefaults = ({ cache, context, targetProperties, mode }) => {
byDependency: {
wasm: esmDeps(),
esm: esmDeps(),
url: {
preferRelative: true
},
worker: {
...esmDeps(),
preferRelative: true
},
commonjs: cjsDeps(),
amd: cjsDeps(),
// for backward-compat: loadModule

View File

@ -47,7 +47,7 @@ class WorkerDependency extends ModuleDependency {
}
get category() {
return "esm";
return "worker";
}
}

View File

@ -14,7 +14,7 @@
"acorn": "^7.4.0",
"browserslist": "^4.14.3",
"chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.0.0",
"enhanced-resolve": "^5.1.0",
"eslint-scope": "^5.1.0",
"events": "^3.2.0",
"glob-to-regexp": "^0.4.1",
@ -28,7 +28,7 @@
"tapable": "^2.0.0",
"terser-webpack-plugin": "^4.1.0",
"watchpack": "^2.0.0",
"webpack-sources": "^2.0.0"
"webpack-sources": "^2.0.1"
},
"peerDependenciesMeta": {
"webpack-cli": {

View File

@ -2525,6 +2525,10 @@
]
}
},
"preferRelative": {
"description": "Prefer to resolve module requests as relative request and fallback to resolving as module.",
"type": "boolean"
},
"resolver": {
"description": "Custom resolver.",
"tsType": "(import('enhanced-resolve').Resolver)"

View File

@ -450,6 +450,9 @@ describe("Defaults", () => {
"...",
],
},
"url": Object {
"preferRelative": true,
},
"wasm": Object {
"aliasFields": Array [
"browser",
@ -470,6 +473,27 @@ describe("Defaults", () => {
"...",
],
},
"worker": Object {
"aliasFields": Array [
"browser",
],
"conditionNames": Array [
"import",
"module",
"...",
],
"extensions": Array [
".js",
".json",
".wasm",
],
"mainFields": Array [
"browser",
"module",
"...",
],
"preferRelative": true,
},
},
"cache": false,
"conditionNames": Array [
@ -1035,6 +1059,13 @@ describe("Defaults", () => {
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
+ "node",
@@ ... @@
@ -1162,6 +1193,13 @@ describe("Defaults", () => {
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
- "browser",
+ "node",
+ "electron",
@ -1271,6 +1309,13 @@ describe("Defaults", () => {
@@ ... @@
- "browser",
@@ ... @@
- "aliasFields": Array [
- "browser",
- ],
+ "aliasFields": Array [],
@@ ... @@
- "browser",
@@ ... @@
+ "node",
@@ ... @@
+ "electron",

View File

@ -3954,6 +3954,19 @@ Object {
"multiple": false,
"simpleType": "boolean",
},
"resolve-loader-prefer-relative": Object {
"configs": Array [
Object {
"description": "Prefer to resolve module requests as relative request and fallback to resolving as module.",
"multiple": false,
"path": "resolveLoader.preferRelative",
"type": "boolean",
},
],
"description": "Prefer to resolve module requests as relative request and fallback to resolving as module.",
"multiple": false,
"simpleType": "boolean",
},
"resolve-loader-restrictions": Object {
"configs": Array [
Object {
@ -4129,6 +4142,19 @@ Object {
"multiple": false,
"simpleType": "boolean",
},
"resolve-prefer-relative": Object {
"configs": Array [
Object {
"description": "Prefer to resolve module requests as relative request and fallback to resolving as module.",
"multiple": false,
"path": "resolve.preferRelative",
"type": "boolean",
},
],
"description": "Prefer to resolve module requests as relative request and fallback to resolving as module.",
"multiple": false,
"simpleType": "boolean",
},
"resolve-restrictions": Object {
"configs": Array [
Object {

View File

@ -1,5 +1,11 @@
it("should handle import.meta.url in URL()", () => {
const {href} = new URL("./a.js", import.meta.url);
const { href } = new URL("./a.js", import.meta.url);
expect(href).toBe("https://test.cases/path2/a.js");
});
it("should handle relative paths in URL()", () => {
const { href } = new URL("a.js", import.meta.url);
expect(href).toBe("https://test.cases/path2/a.js");
});

27
types.d.ts vendored
View File

@ -7041,6 +7041,7 @@ declare interface ResolveOptionsTypes {
fullySpecified: boolean;
resolveToContext: boolean;
restrictions: Set<string | RegExp>;
preferRelative: boolean;
}
/**
@ -7142,6 +7143,11 @@ declare interface ResolveOptionsWebpackOptions {
*/
plugins?: ("..." | ResolvePluginInstance)[];
/**
* Prefer to resolve module requests as relative request and fallback to resolving as module.
*/
preferRelative?: boolean;
/**
* Custom resolver.
*/
@ -7321,6 +7327,10 @@ declare abstract class ResolverFactory {
* Plugins for the resolver.
*/
plugins?: ("..." | ResolvePluginInstance)[];
/**
* Prefer to resolve module requests as relative request and fallback to resolving as module.
*/
preferRelative?: boolean;
/**
* Custom resolver.
*/
@ -7433,6 +7443,10 @@ declare abstract class ResolverFactory {
* Plugins for the resolver.
*/
plugins?: ("..." | ResolvePluginInstance)[];
/**
* Prefer to resolve module requests as relative request and fallback to resolving as module.
*/
preferRelative?: boolean;
/**
* Custom resolver.
*/
@ -7545,6 +7559,10 @@ declare abstract class ResolverFactory {
* Plugins for the resolver.
*/
plugins?: ("..." | ResolvePluginInstance)[];
/**
* Prefer to resolve module requests as relative request and fallback to resolving as module.
*/
preferRelative?: boolean;
/**
* Custom resolver.
*/
@ -9315,6 +9333,11 @@ declare interface UserResolveOptions {
* Use only the sync constiants of the file system calls
*/
useSyncFileSystemCalls?: boolean;
/**
* Prefer to resolve module requests as relative requests before falling back to modules
*/
preferRelative?: boolean;
}
declare abstract class VariableInfo {
declaredScope: ScopeInfo;
@ -9763,6 +9786,10 @@ declare interface WithOptions {
* Plugins for the resolver.
*/
plugins?: ("..." | ResolvePluginInstance)[];
/**
* Prefer to resolve module requests as relative request and fallback to resolving as module.
*/
preferRelative?: boolean;
/**
* Custom resolver.
*/

View File

@ -2333,10 +2333,10 @@ enhanced-resolve@^4.0.0:
memory-fs "^0.5.0"
tapable "^1.0.0"
enhanced-resolve@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.0.0.tgz#4737e6ebd4f2fd13fe23f4cec9d02146afc2c527"
integrity sha512-6F037vvK16tgLlRgUx6ZEZISMysNvnnk09SILFrx3bNa1UsSLpIXFzWOmtiDxf1ISPAG6/wHBI61PEkeuTLVNA==
enhanced-resolve@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.1.0.tgz#44cbf2242876ae9044dc32f7207c23c0dd3acdc1"
integrity sha512-EM3ZMRrprkvO44dVdDRGI9pNPY1Vkw15lT/cQk1IwlbcI7Tpc3la8y1FQCuilWQ8qvlq+n19abwPBjVLnld21A==
dependencies:
graceful-fs "^4.2.4"
tapable "^2.0.0"
@ -6762,10 +6762,10 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.3:
source-list-map "^2.0.0"
source-map "~0.6.1"
webpack-sources@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.0.0.tgz#602d4bc7ff2e630ceb753a09ef49f260fa4ae7f0"
integrity sha512-CpCkDjEKa5vYVRDFDRABBkBomz+82lz9bpXViN1LBc8L/WDXvSyELKcBvBnTeDEiRfMJCGAFG9+04406PLSsIA==
webpack-sources@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.0.1.tgz#1467f6e692ddce91e88b8044c44347b1087bbd4f"
integrity sha512-A9oYz7ANQBK5EN19rUXbvNgfdfZf5U2gP0769OXsj9CvYkCR6OHOsd6OKyEy4H38GGxpsQPKIL83NC64QY6Xmw==
dependencies:
source-list-map "^2.0.1"
source-map "^0.6.1"