如何为一个入口点提供带有哈希的文件名,而不是任何其他入口点?

时间:2018-02-06 23:11:57

标签: webpack

我有一个webpack配置,如下所示:

  entry: {
    app: './public/javascripts/app.js',
    /* ...like 10 more entry points here... */

    //I want this one to have a hash in the filename
    newThing: './public/javascripts/newThing.js' 
  },
  output: {
    path: outputPath,
    publicPath: '/public/',

   //I can't [hash] here because it would break all the existing filenames
    filename: '[name].built.js',

    chunkFilename : '[name]-[chunkhash:6].built.js'
  }

我希望我的newThing条目在文件名中获得[hash]。但output配置似乎统一适用于所有入口点。基本上我想要为一个条目替换一组不同的文件名替换。使用Webpack(理想情况下是v3)实现此目的的任何方法?

1 个答案:

答案 0 :(得分:1)

根据docsoutput.filename可以是字符串或函数。所以你应该能够做到这样的事情:

filename: function(obj) {
  if (obj.name === 'newThing') {
    return 'newThing.' + obj.hash + '.js';
  } else {
    return obj.name + '.built.js';
  }
}