为什么 [name] 在 MiniCssExtractPlugin for webpack 中总是 main?

Why is [name] always main in MiniCssExtractPlugin for webpack?

在webpack中配置MiniCssExtractPlugin时,不明白为什么[name]总是"main"?

 plugins: [
   new MiniCssExtractPlugin({
      filename: 'assets/css/[name].css' // where does the name "main" come from?
    }) 
  ]

我如何传递一个变量,以便 [name] 是我的应用程序的名称而不是 "main" 而不是像 filename: 'assets/css/myapp.css' 这样硬编码它?

Webpack output 配置:

module.exports = {
  entry: './src/app.js',
  output: {
    path: utils.resolve('/dist'),
  },

奇怪的是,即使是 Webpack 也会将主捆绑文件创建为 main.js。为什么主要?

[name] 是入口点的名称。

如果入口点是 StringArray,webpack 将使用默认入口名称 main,基于 https://github.com/webpack/webpack/blob/6f413ae2e63897aef5e1956cb1c351ab33f6dbfe/lib/EntryOptionPlugin.js#L76

您可以将入口点作为对象提供,

module.exports = {
  entry: { myName: './src/app.js'},
  output: {
    path: utils.resolve('/dist'),
  },
  ...
}

这会将条目名称更改为 myName