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

vol*_*one 3 webpack mini-css-extract-plugin

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

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

我怎么能传入一个变量,以便 [name] 是我的应用程序的名称而不是“main”而不用像这样的硬编码filename: 'assets/css/myapp.css'

网络包output配置:

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

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

fel*_*osh 8

[name]是入口点的名称。

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

你可以提供你的入口点作为一个对象,

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

这会将条目名称更改为myName.

  • 谢谢你现在明白了。我没有意识到“main”是默认名称。 (3认同)