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();
|
||||
}
|
||||
resolveResults.set(key, undefined);
|
||||
resolveContext(context, path, resolverContext, (err, result) => {
|
||||
resolveContext(context, path, resolverContext, (err, _, result) => {
|
||||
if (err) {
|
||||
if (expected === false) {
|
||||
resolveResults.set(key, false);
|
||||
|
@ -1259,11 +1259,12 @@ class FileSystemInfo {
|
|||
err.message += `\nwhile resolving '${path}' in ${context} to a directory`;
|
||||
return callback(err);
|
||||
}
|
||||
resolveResults.set(key, result);
|
||||
const resultPath = result.path;
|
||||
resolveResults.set(key, resultPath);
|
||||
push({
|
||||
type: RBDT_DIRECTORY,
|
||||
context: undefined,
|
||||
path: result,
|
||||
path: resultPath,
|
||||
expected: undefined,
|
||||
issuer: job
|
||||
});
|
||||
|
@ -1276,14 +1277,16 @@ class FileSystemInfo {
|
|||
return callback();
|
||||
}
|
||||
resolveResults.set(key, undefined);
|
||||
resolve(context, path, resolverContext, (err, result) => {
|
||||
resolve(context, path, resolverContext, (err, _, result) => {
|
||||
if (typeof expected === "string") {
|
||||
if (result === expected) {
|
||||
resolveResults.set(key, result);
|
||||
if (!err && result && result.path === expected) {
|
||||
resolveResults.set(key, result.path);
|
||||
} else {
|
||||
invalidResolveResults.add(key);
|
||||
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
|
||||
)}`
|
||||
);
|
||||
|
@ -1300,11 +1303,12 @@ class FileSystemInfo {
|
|||
)}`;
|
||||
return callback(err);
|
||||
}
|
||||
resolveResults.set(key, result);
|
||||
const resultPath = result.path;
|
||||
resolveResults.set(key, resultPath);
|
||||
push({
|
||||
type: RBDT_FILE,
|
||||
context: undefined,
|
||||
path: result,
|
||||
path: resultPath,
|
||||
expected: undefined,
|
||||
issuer: job
|
||||
});
|
||||
|
@ -1646,38 +1650,42 @@ class FileSystemInfo {
|
|||
const [type, context, path] = key.split("\n");
|
||||
switch (type) {
|
||||
case "d":
|
||||
resolveContext(context, path, {}, (err, result) => {
|
||||
resolveContext(context, path, {}, (err, _, result) => {
|
||||
if (expectedResult === false)
|
||||
return callback(err ? undefined : INVALID);
|
||||
if (err) return callback(err);
|
||||
if (result !== expectedResult) return callback(INVALID);
|
||||
const resultPath = result.path;
|
||||
if (resultPath !== expectedResult) return callback(INVALID);
|
||||
callback();
|
||||
});
|
||||
break;
|
||||
case "f":
|
||||
resolveCjs(context, path, {}, (err, result) => {
|
||||
resolveCjs(context, path, {}, (err, _, result) => {
|
||||
if (expectedResult === false)
|
||||
return callback(err ? undefined : INVALID);
|
||||
if (err) return callback(err);
|
||||
if (result !== expectedResult) return callback(INVALID);
|
||||
const resultPath = result.path;
|
||||
if (resultPath !== expectedResult) return callback(INVALID);
|
||||
callback();
|
||||
});
|
||||
break;
|
||||
case "c":
|
||||
resolveCjsAsChild(context, path, {}, (err, result) => {
|
||||
resolveCjsAsChild(context, path, {}, (err, _, result) => {
|
||||
if (expectedResult === false)
|
||||
return callback(err ? undefined : INVALID);
|
||||
if (err) return callback(err);
|
||||
if (result !== expectedResult) return callback(INVALID);
|
||||
const resultPath = result.path;
|
||||
if (resultPath !== expectedResult) return callback(INVALID);
|
||||
callback();
|
||||
});
|
||||
break;
|
||||
case "e":
|
||||
resolveEsm(context, path, {}, (err, result) => {
|
||||
resolveEsm(context, path, {}, (err, _, result) => {
|
||||
if (expectedResult === false)
|
||||
return callback(err ? undefined : INVALID);
|
||||
if (err) return callback(err);
|
||||
if (result !== expectedResult) return callback(INVALID);
|
||||
const resultPath = result.path;
|
||||
if (resultPath !== expectedResult) return callback(INVALID);
|
||||
callback();
|
||||
});
|
||||
break;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/* global VALUE */
|
||||
|
||||
require("dep#with#hash/#.js");
|
||||
module.exports = {
|
||||
loader: require("./loader!"),
|
||||
config: VALUE,
|
||||
|
|
|
@ -3,6 +3,8 @@ const webpack = require("../../..");
|
|||
// eslint-disable-next-line node/no-missing-require
|
||||
const value = require("../../js/buildDepsInput/config-dependency");
|
||||
|
||||
require("dep#with#hash/#.js");
|
||||
|
||||
process.exitCode = 1;
|
||||
|
||||
const options = JSON.parse(process.argv[3]);
|
||||
|
|
Loading…
Reference in New Issue