webpack 动态导入:如何更改文件名中的默认信号“~”?
webpack dynamic import: How to change the default signal "~" in file name?
我正在使用 Vue.js 构建网络应用程序。而webpack (version: 4.41.2) 是我的构建工具,我使用动态导入方式加载组件,简单定义如下:
components: {
chat: () => import(import(/* webpackChunkName: "chat" */ './chat')),
file: () => import(import(/* webpackChunkName: "file" */ './file'))
}
webpack 输出配置为:
output: {
filename: 'js/[name].[chunkhash].js',
chunkFilename: 'js/[name].[chunkhash].js'
},
以下是构建文件:
chat.ed11dfebe7589449a58f.js,
file.5d49ceb7951cfdd60f32.js,
chat~file.9626240163418cbf81b9.js
如你所见,有一个名为chat~file
的文件,在我们公司的安全规则中,如果文件名包含~
,将阻止下载它们,所以我需要更改信号~
这里是其他允许的信号,比如 _
,有人知道如何在 webpack 配置中更改它吗?
您可以使用vue.config.js
文件配置生成的块的名称。
试试这个:
module.exports {
configureWebpack: (config) => {
config.output.filename = '[name].[hash:8].js';
config.output.chunkFilename = '[name].[hash:8].js';
}
}
编辑因为评论:
可以使用 automaticNameDelimiter
更改分隔符(检查 documentation)。
配置名称分隔符 optimization.splitChunks.automaticNameDelimiter = '_'
https://webpack.js.org/plugins/split-chunks-plugin/#optimizationsplitchunks
我正在使用 Vue.js 构建网络应用程序。而webpack (version: 4.41.2) 是我的构建工具,我使用动态导入方式加载组件,简单定义如下:
components: {
chat: () => import(import(/* webpackChunkName: "chat" */ './chat')),
file: () => import(import(/* webpackChunkName: "file" */ './file'))
}
webpack 输出配置为:
output: {
filename: 'js/[name].[chunkhash].js',
chunkFilename: 'js/[name].[chunkhash].js'
},
以下是构建文件:
chat.ed11dfebe7589449a58f.js,
file.5d49ceb7951cfdd60f32.js,
chat~file.9626240163418cbf81b9.js
如你所见,有一个名为chat~file
的文件,在我们公司的安全规则中,如果文件名包含~
,将阻止下载它们,所以我需要更改信号~
这里是其他允许的信号,比如 _
,有人知道如何在 webpack 配置中更改它吗?
您可以使用vue.config.js
文件配置生成的块的名称。
试试这个:
module.exports {
configureWebpack: (config) => {
config.output.filename = '[name].[hash:8].js';
config.output.chunkFilename = '[name].[hash:8].js';
}
}
编辑因为评论:
可以使用 automaticNameDelimiter
更改分隔符(检查 documentation)。
配置名称分隔符 optimization.splitChunks.automaticNameDelimiter = '_'
https://webpack.js.org/plugins/split-chunks-plugin/#optimizationsplitchunks