mirror of https://github.com/webpack/webpack.git
feat: implement option for `HashedModuleIdes` plugin
This commit is contained in:
parent
b77addda16
commit
c222a6f33b
|
|
@ -56,6 +56,7 @@ const RuntimeChunkPlugin = require("./optimize/RuntimeChunkPlugin");
|
|||
const NoEmitOnErrorsPlugin = require("./NoEmitOnErrorsPlugin");
|
||||
const NamedModulesPlugin = require("./NamedModulesPlugin");
|
||||
const NamedChunksPlugin = require("./NamedChunksPlugin");
|
||||
const HashedModuleIdsPlugin = require("./HashedModuleIdsPlugin");
|
||||
const DefinePlugin = require("./DefinePlugin");
|
||||
const SizeLimitsPlugin = require("./performance/SizeLimitsPlugin");
|
||||
|
||||
|
|
@ -328,6 +329,8 @@ class WebpackOptionsApply extends OptionsApply {
|
|||
new NoEmitOnErrorsPlugin().apply(compiler);
|
||||
if (options.optimization.namedModules)
|
||||
new NamedModulesPlugin().apply(compiler);
|
||||
if (options.optimization.hashedModuleIds)
|
||||
new HashedModuleIdsPlugin().apply(compiler);
|
||||
if (options.optimization.namedChunks)
|
||||
new NamedChunksPlugin().apply(compiler);
|
||||
if (options.optimization.nodeEnv) {
|
||||
|
|
|
|||
|
|
@ -258,6 +258,8 @@ class WebpackOptionsDefaulter extends OptionsDefaulter {
|
|||
"make",
|
||||
options => options.mode === "development"
|
||||
);
|
||||
// TODO enable for production mode in webpack 5
|
||||
this.set("optimization.hashedModuleIds", false);
|
||||
this.set(
|
||||
"optimization.namedChunks",
|
||||
"make",
|
||||
|
|
|
|||
|
|
@ -1546,6 +1546,10 @@
|
|||
"description": "Use readable module identifiers for better debugging",
|
||||
"type": "boolean"
|
||||
},
|
||||
"hashedModuleIds": {
|
||||
"description": "Use hashed module id instead module identifiers for better long term caching",
|
||||
"type": "boolean"
|
||||
},
|
||||
"namedChunks": {
|
||||
"description": "Use readable chunk identifiers for better debugging",
|
||||
"type": "boolean"
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ const DEFAULT_OPTIMIZATIONS = {
|
|||
noEmitOnErrors: false,
|
||||
concatenateModules: false,
|
||||
namedModules: false,
|
||||
hashedModuleIds: false,
|
||||
minimizer: [uglifyJsForTesting]
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
module.exports = module.id;
|
||||
|
|
@ -0,0 +1 @@
|
|||
module.exports = module.id;
|
||||
|
|
@ -0,0 +1 @@
|
|||
module.exports = module.id;
|
||||
|
|
@ -0,0 +1 @@
|
|||
module.exports = module.id;
|
||||
|
|
@ -0,0 +1 @@
|
|||
module.exports = module.id;
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
var path = require("path");
|
||||
|
||||
it("should have named modules ids", function() {
|
||||
for (var i = 1; i <= 5; i++) {
|
||||
var expectedModuleId = "file" + i + ".js";
|
||||
var moduleId = require("./files/file" + i + ".js");
|
||||
|
||||
expect(path.basename(moduleId)).not.toBe(expectedModuleId);
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
module.exports = {
|
||||
optimization: {
|
||||
hashedModuleIds: true
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1 @@
|
|||
module.exports = module.id;
|
||||
|
|
@ -0,0 +1 @@
|
|||
module.exports = module.id;
|
||||
|
|
@ -0,0 +1 @@
|
|||
module.exports = module.id;
|
||||
|
|
@ -0,0 +1 @@
|
|||
module.exports = module.id;
|
||||
|
|
@ -0,0 +1 @@
|
|||
module.exports = module.id;
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
var path = require("path");
|
||||
|
||||
it("should have named modules ids", function() {
|
||||
for (var i = 1; i <= 5; i++) {
|
||||
var expectedModuleId = "file" + i + ".js";
|
||||
var moduleId = require("./files/file" + i + ".js");
|
||||
|
||||
expect(path.basename(moduleId)).toBe(expectedModuleId);
|
||||
}
|
||||
});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
module.exports = {
|
||||
optimization: {
|
||||
namedModules: true
|
||||
}
|
||||
};
|
||||
Loading…
Reference in New Issue