webpack配置输出中的条件文件名

时间:2016-10-14 05:35:58

标签: reactjs webpack webpack-dev-server

我当前的webpack输出配置如下:

if (name is 'custom') {
filename: '/[name].js'
}else {
filename: '/[name].[chunkhash].js'
}

但是,我有一个我不想添加[chunkhash]后缀的条目文件(custom.js)。所有其他我想在文件名后添加chuckhash后缀。基本上:

Q{end+1} = 'E1';

我如何实现这一目标?

3 个答案:

答案 0 :(得分:0)

根据文档,您只能有一个输出配置。

  

影响编译输出的选项。输出选项告诉   Webpack如何将编译后的文件写入磁盘。请注意,同时   可以有多个入口点,只有一个输出配置   指定。

所以我想你现在不能这样做(至少根据文档)。你能详细说明为什么你需要这样的东西吗?

答案 1 :(得分:0)

你可以轻松地做到这一点(webpack 4.x):

output: {
    filename: '[name].js',
    chunkFilename: (arg) => {
        if (arg.chunk.name == "vendor") {
            return '[name].[chunkhash].js';
        }
        return '[name].js';
    } ,
    publicPath: `/${common.APP_ROOT}/`
},

答案 2 :(得分:0)

来自https://webpack.js.org/configuration/output/#output-filename

module.exports = {

  //...
  output: {
    filename: (chunkData) => {
      return chunkData.chunk.name === 'main' ? '[name].js': '[name]/[name].js';
    },
  }
};