Merge pull request #14725 from webpack/bugfix/require-ensure-full-require

attach require with property dependencies to the correct DependenciesBlock
This commit is contained in:
Tobias Koppers 2021-11-15 10:21:15 +01:00 committed by GitHub
commit cc990fe13c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 3 deletions

View File

@ -282,7 +282,7 @@ class CommonJsImportsParserPlugin {
dep.asiSafe = !parser.isAsiPosition(expr.range[0]); dep.asiSafe = !parser.isAsiPosition(expr.range[0]);
dep.optional = !!parser.scope.inTry; dep.optional = !!parser.scope.inTry;
dep.loc = expr.loc; dep.loc = expr.loc;
parser.state.module.addDependency(dep); parser.state.current.addDependency(dep);
return true; return true;
} }
}; };
@ -299,7 +299,7 @@ class CommonJsImportsParserPlugin {
dep.asiSafe = !parser.isAsiPosition(expr.range[0]); dep.asiSafe = !parser.isAsiPosition(expr.range[0]);
dep.optional = !!parser.scope.inTry; dep.optional = !!parser.scope.inTry;
dep.loc = expr.callee.loc; dep.loc = expr.callee.loc;
parser.state.module.addDependency(dep); parser.state.current.addDependency(dep);
parser.walkExpressions(expr.arguments); parser.walkExpressions(expr.arguments);
return true; return true;
} }

View File

@ -82,7 +82,7 @@ class URLPlugin {
relative relative
); );
dep.loc = expr.loc; dep.loc = expr.loc;
parser.state.module.addDependency(dep); parser.state.current.addDependency(dep);
InnerGraph.onUsage(parser.state, e => (dep.usedByExports = e)); InnerGraph.onUsage(parser.state, e => (dep.usedByExports = e));
return true; return true;
}); });

View File

@ -0,0 +1,7 @@
it("should generate a chunk for a full require dependencies in require.ensure", done => {
require.ensure([], () => {
expect(require("./module").property).toBe(42);
expect(__STATS__.chunks.length).toBe(2);
done();
});
});

View File

@ -0,0 +1 @@
exports.property = 42;

View File

@ -0,0 +1,4 @@
/** @type {import("../../../../").Configuration} */
module.exports = {
mode: "production"
};