Node.js webpack 4优化开发和产品构建之间的不同块命名

Node.js webpack 4优化开发和产品构建之间的不同块命名,node.js,npm,webpack,Node.js,Npm,Webpack,我正在尝试使用Webpack4中的优化创建单个供应商区块文件。即使在阅读了文档之后,我也对命名的工作原理感到有点困惑 ... output: { path: path.resolve(__dirname, 'dist'), filename: "RootSite/SiteAssets/js/[Name]_bundle.js", libraryTarget: "var", library: ["spdict", "[name]"], }, ... optimizat

我正在尝试使用Webpack4中的优化创建单个供应商区块文件。即使在阅读了文档之后,我也对命名的工作原理感到有点困惑

...
output: {
    path: path.resolve(__dirname, 'dist'),
    filename: "RootSite/SiteAssets/js/[Name]_bundle.js",
    libraryTarget: "var",
    library: ["spdict", "[name]"],
},
...
optimization: {
    splitChunks: {
        cacheGroups: {
            vendor: {
                test: /[\\/]node_modules[\\/]/,
                name: "vendor",
                chunks: "all"
            }
        }
    }
},
当我运行
webpack--modedevelopment
时,它会生成以下文件:

  • vendor.vendor\u bundle.js
  • vendor.vendor\u bundle.js.map
当我运行
webpack--modeproduction
时,它会生成以下内容:

  • 0.vendor_bundle.js
  • 0.vendor_bundle.js.map

为什么这两种模式在命名上有差异


另外,为什么是vendor.vendor\u bundle.js而不是vendor\u bundle.js?

[Name]
不是一个可识别的网页模式,这将导致意外行为。尝试:

...
output: {
    path: path.resolve(__dirname, 'dist'),
    filename: "RootSite/SiteAssets/js/[name]_bundle.js",
    libraryTarget: "var",
    library: ["spdict", "[name]"],
},

第二个,你指的是生产?另外,在这里修复:
文件名:“RootSite/SiteAssets/js/[name]\u bundle.js”
,结果还是一样的吗?@Matheus Silva,是的,对不起,那必须是生产。另外,将文件名从[name]修复为[name]解决了问题,请随意添加它作为答案:)