【发布时间】:2017-12-06 21:53:31
【问题描述】:
从 Webpack@3.0.0 开始,我们有了这个强大的功能,可以启用命名的块文件:
import(
/* webpackChunkName: "my-chunk-name" */
/* webpackMode: "lazy-once" */
'module'
);
但是,我现在有 40 个这样的导入,并且更改每个都有点麻烦。
有没有办法为所有块全局定义webpackChunkName 和webpackMode?
我在webpack.config.js 中想象这样的事情:
output: {
filename: 'js/[name].js',
chunkFilename: 'js/[filename].js' // so that import('module') creates module.js
chunkMode: 'lazy-once' // so I can override default `lazy` option once and for all
}
【问题讨论】:
-
我只是发表评论,因为我不确定答案,但如果我没记错的话,
chunkFilename是命名块的通用方式。如果你想覆盖它,你可以使用新的魔法评论webpackChunkName -
我可以看到你的完整答案:) 吗? @Ematipico
-
不可能使用
chunkFilename,此选项仅接受:[name]、[id]和[chunkhash]占位符,并且[name]取自输出包文件名,而不是来自导入的模块文件名。覆盖它的唯一方法是像我在第一个 sn-p 中所做的那样通过魔术注释,但不幸的是,这必须分别为每个导入的模块完成。 -
您是否尝试使用
chunkFilename的回调函数?我不知道webpack.js.org/configuration/output/#outputchunkfilename 是什么。函数的接口是function (pathData, assetInfo) => string -
另一种选择是查看webpack.js.org/configuration/output/#template-strings 并查看例如
[base](包含文件名和扩展名)是否适用于卡盘文件名
标签: javascript webpack webpack-3