Как настроить таргетинг различных приложений из одного и того же файла конфигурации веб-пакета на основе аргументов командной строки на команду запуска npm

У меня есть 3 различных приложения activjs, имеющие схожие зависимости. Могу ли я использовать один и тот же файл webpack.config.js для запуска этих разных приложений. Ниже приведена структура каталогов, которую я хочу

-root
  --App1
     ---source
     ---index.html
     ---style.css
  --App2
  --App3
  --package.json
  --node_modules
  --webpack.config.js

в package.json У меня есть следующий стартовый скрипт

"scripts":{
   "start":"node_modules/.bin/webpack-dev-server --progress --port 3000"
}

Я пытался с помощью аргумента командной строки при выдаче npm start команда:

npm start App1

А потом с помощью process.argv в webpack.config.js установить точку входа и выходной путь.

var path= require('path');

var app= path.resolve(__diname,process.argv[process.argv.length-1]);

module.exports = {

 entry: path.resolve(app, 'source/app.js'),

  output: {
    path: app,
    filename: "bundle.js"
  },
 .......
 .......

Webpack загружает и компилирует файлы в App#/source папки, но не подают содержимое из App# каталог. В чем здесь моя ошибка и есть ли другая альтернатива, чтобы получить эту работу.

1 ответ

Вы можете создать другой файл конфигурации, скажем, webpack.config.app1.js для сборки App1, вот так:

webpack && webpack --config webpack.config.app1.js

и так далее.

Другой способ - сделать конфигурацию вашего веб-пакета из объекта в массив, содержащий эти три объекта конфигурации.

Другие вопросы по тегам