mirror of https://github.com/webpack/webpack.git
Merge pull request #13157 from scamden/pr-hash-bug
fix(resolve): allows filesysteminfo to resolve files that have #'s
This commit is contained in:
commit
85fe6ac4f4
|
@ -1249,7 +1249,7 @@ class FileSystemInfo {
|
||||||
return callback();
|
return callback();
|
||||||
}
|
}
|
||||||
resolveResults.set(key, undefined);
|
resolveResults.set(key, undefined);
|
||||||
resolveContext(context, path, resolverContext, (err, result) => {
|
resolveContext(context, path, resolverContext, (err, _, result) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
if (expected === false) {
|
if (expected === false) {
|
||||||
resolveResults.set(key, false);
|
resolveResults.set(key, false);
|
||||||
|
@ -1259,11 +1259,12 @@ class FileSystemInfo {
|
||||||
err.message += `\nwhile resolving '${path}' in ${context} to a directory`;
|
err.message += `\nwhile resolving '${path}' in ${context} to a directory`;
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
resolveResults.set(key, result);
|
const resultPath = result.path;
|
||||||
|
resolveResults.set(key, resultPath);
|
||||||
push({
|
push({
|
||||||
type: RBDT_DIRECTORY,
|
type: RBDT_DIRECTORY,
|
||||||
context: undefined,
|
context: undefined,
|
||||||
path: result,
|
path: resultPath,
|
||||||
expected: undefined,
|
expected: undefined,
|
||||||
issuer: job
|
issuer: job
|
||||||
});
|
});
|
||||||
|
@ -1276,14 +1277,16 @@ class FileSystemInfo {
|
||||||
return callback();
|
return callback();
|
||||||
}
|
}
|
||||||
resolveResults.set(key, undefined);
|
resolveResults.set(key, undefined);
|
||||||
resolve(context, path, resolverContext, (err, result) => {
|
resolve(context, path, resolverContext, (err, _, result) => {
|
||||||
if (typeof expected === "string") {
|
if (typeof expected === "string") {
|
||||||
if (result === expected) {
|
if (!err && result && result.path === expected) {
|
||||||
resolveResults.set(key, result);
|
resolveResults.set(key, result.path);
|
||||||
} else {
|
} else {
|
||||||
invalidResolveResults.add(key);
|
invalidResolveResults.add(key);
|
||||||
this.logger.warn(
|
this.logger.warn(
|
||||||
`Resolving '${path}' in ${context} for build dependencies doesn't lead to expected result '${expected}', but to '${result}' instead. Resolving dependencies are ignored for this path.\n${pathToString(
|
`Resolving '${path}' in ${context} for build dependencies doesn't lead to expected result '${expected}', but to '${
|
||||||
|
err || (result && result.path)
|
||||||
|
}' instead. Resolving dependencies are ignored for this path.\n${pathToString(
|
||||||
job
|
job
|
||||||
)}`
|
)}`
|
||||||
);
|
);
|
||||||
|
@ -1300,11 +1303,12 @@ class FileSystemInfo {
|
||||||
)}`;
|
)}`;
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
resolveResults.set(key, result);
|
const resultPath = result.path;
|
||||||
|
resolveResults.set(key, resultPath);
|
||||||
push({
|
push({
|
||||||
type: RBDT_FILE,
|
type: RBDT_FILE,
|
||||||
context: undefined,
|
context: undefined,
|
||||||
path: result,
|
path: resultPath,
|
||||||
expected: undefined,
|
expected: undefined,
|
||||||
issuer: job
|
issuer: job
|
||||||
});
|
});
|
||||||
|
@ -1646,38 +1650,42 @@ class FileSystemInfo {
|
||||||
const [type, context, path] = key.split("\n");
|
const [type, context, path] = key.split("\n");
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case "d":
|
case "d":
|
||||||
resolveContext(context, path, {}, (err, result) => {
|
resolveContext(context, path, {}, (err, _, result) => {
|
||||||
if (expectedResult === false)
|
if (expectedResult === false)
|
||||||
return callback(err ? undefined : INVALID);
|
return callback(err ? undefined : INVALID);
|
||||||
if (err) return callback(err);
|
if (err) return callback(err);
|
||||||
if (result !== expectedResult) return callback(INVALID);
|
const resultPath = result.path;
|
||||||
|
if (resultPath !== expectedResult) return callback(INVALID);
|
||||||
callback();
|
callback();
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case "f":
|
case "f":
|
||||||
resolveCjs(context, path, {}, (err, result) => {
|
resolveCjs(context, path, {}, (err, _, result) => {
|
||||||
if (expectedResult === false)
|
if (expectedResult === false)
|
||||||
return callback(err ? undefined : INVALID);
|
return callback(err ? undefined : INVALID);
|
||||||
if (err) return callback(err);
|
if (err) return callback(err);
|
||||||
if (result !== expectedResult) return callback(INVALID);
|
const resultPath = result.path;
|
||||||
|
if (resultPath !== expectedResult) return callback(INVALID);
|
||||||
callback();
|
callback();
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case "c":
|
case "c":
|
||||||
resolveCjsAsChild(context, path, {}, (err, result) => {
|
resolveCjsAsChild(context, path, {}, (err, _, result) => {
|
||||||
if (expectedResult === false)
|
if (expectedResult === false)
|
||||||
return callback(err ? undefined : INVALID);
|
return callback(err ? undefined : INVALID);
|
||||||
if (err) return callback(err);
|
if (err) return callback(err);
|
||||||
if (result !== expectedResult) return callback(INVALID);
|
const resultPath = result.path;
|
||||||
|
if (resultPath !== expectedResult) return callback(INVALID);
|
||||||
callback();
|
callback();
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case "e":
|
case "e":
|
||||||
resolveEsm(context, path, {}, (err, result) => {
|
resolveEsm(context, path, {}, (err, _, result) => {
|
||||||
if (expectedResult === false)
|
if (expectedResult === false)
|
||||||
return callback(err ? undefined : INVALID);
|
return callback(err ? undefined : INVALID);
|
||||||
if (err) return callback(err);
|
if (err) return callback(err);
|
||||||
if (result !== expectedResult) return callback(INVALID);
|
const resultPath = result.path;
|
||||||
|
if (resultPath !== expectedResult) return callback(INVALID);
|
||||||
callback();
|
callback();
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
/* global VALUE */
|
/* global VALUE */
|
||||||
|
|
||||||
|
require("dep#with#hash/#.js");
|
||||||
module.exports = {
|
module.exports = {
|
||||||
loader: require("./loader!"),
|
loader: require("./loader!"),
|
||||||
config: VALUE,
|
config: VALUE,
|
||||||
|
|
|
@ -3,6 +3,8 @@ const webpack = require("../../..");
|
||||||
// eslint-disable-next-line node/no-missing-require
|
// eslint-disable-next-line node/no-missing-require
|
||||||
const value = require("../../js/buildDepsInput/config-dependency");
|
const value = require("../../js/buildDepsInput/config-dependency");
|
||||||
|
|
||||||
|
require("dep#with#hash/#.js");
|
||||||
|
|
||||||
process.exitCode = 1;
|
process.exitCode = 1;
|
||||||
|
|
||||||
const options = JSON.parse(process.argv[3]);
|
const options = JSON.parse(process.argv[3]);
|
||||||
|
|
Loading…
Reference in New Issue