Webpack:使用一个条目生成多个输出

时间:2019-02-07 04:15:37

标签: javascript webpack

我想生成我的条目文件的多个版本。即webpack.config.js包含:

  entry: {
    main: path.resolve('./src/main.js'),
    main2: path.resolve('./src/main.js'),
  },

main.js内,我可以这样做:

if (entryName === 'main') {
  ...
} else if (entryName === 'main2') {
  ...
} 

使用Webpack可以吗?

1 个答案:

答案 0 :(得分:1)

可以使用不同的运行脚本来设置环境变量(使用cross-env),该环境变量是在使用DefinePlugin进行编译时插入的。

运行脚本:

{
  "scripts": {
    "build:main": "cross-env ENTRY_NAME=main webpack --config webpack.config.js",
    "build:main2": "cross-env ENTRY_NAME=main2 webpack --config webpack.config.js",
    "build": "npm run build:main && npm run build:main2"
  }
}

Webpack:

{
  entry: {
    main: path.resolve('./src/main.js')
  },
  plugins: [
    new DefinePlugin({
      ENTRY_NAME: JSON.stringify(process.env.ENTRY_NAME)
    })
  ]
}

应用程序:

if (ENTRY_NAME === 'main') {
  //...
} else if (ENTRY_NAME === 'main2') {
  //...
}