Webpack: генерировать несколько выходов, используя одну запись - PullRequest
0 голосов
/ 07 февраля 2019

Я хочу создать несколько версий моего входного файла.Т.е. 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 голосов
/ 07 февраля 2019

Это возможно при использовании различных сценариев запуска, которые задают переменную среды (используя 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') {
  //...
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...