webpack 条件 css 文件名输出取决于条目名称

webpack conditional css filename output dependent on entry name

我的 webpack 有以下配置,它可以正常工作并创建 css 文件,并在文件名后附加内容哈希:

entry: {
  main: 'js/main',
  checkout: 'js/checkout',
  iframe: 'js/iframe',
},
plugins: [
  new MiniCssExtractPlugin({
    filename: "[name].[contenthash].css"
  }),
],

我想为 sahdow 添加一个新的入口点 dom 并创建一个没有附加哈希的 css 文件 - 有没有办法将配置编辑为做这个?

类似于下面的内容,但使用 filename 而不是 moduleFilename

entry: {
  main: 'js/main',
  checkout: 'js/checkout',
  iframe: 'js/iframe',
  shadow: 'js/shadow',
},
plugins: [
  new MiniCssExtractPlugin({
    moduleFilename: ({ name }) => name === 'shadow' ? '[name].css' : '[name].[contenthash].css',
  }),
],
   

或者,有什么方法可以让散列文件名导入到我的影子中 dom?

我正在使用 Webpack 5.50 和 MiniCSSExtractPlugin 2.2.0。事实证明,{name} 嵌套在 属性 {chunk} 中,因此您的示例适用于以下代码:

   new MiniCssExtractPlugin({
       filename: ({ chunk: {name} }) => name === 'shadow' ?
           '[name].css' :
           '[name].[contenthash].css'
   }),