Плагин webpack с общим конфигурационным файлом не обновляет плагин в производственном «слиянии», а перезаписывает - PullRequest
0 голосов
/ 11 марта 2019

У меня есть файлы config.base, config.dev и config.prod с HtmlWebpackPlugin. Я хочу установить template, который используется во всех двух средах. Я думал, что смогу просто обновить параметр title внутри производства, и он будет включен как часть merge. Однако, похоже, что файл шаблона потерян, что вызвало ошибку в браузере.

Как я могу продолжать использовать тот же экземпляр плагина и просто обновить одну опцию?

Для упрощения: config.prod.HtmlWebpackPlugin.title = "production",

В моих файлах config.base для совместного использования через Env:

plugins: [
    new HtmlWebpackPlugin({
      template: "public/index.html",
      favicon: "public/assets/img/favicon.ico"
    }),
  ]

config.prod, который нарушает сборку, если я включаю «title» в качестве опции для изменения в Env.

new HtmlWebpackPlugin({
      title: "Production"
    }),

config.prod, который работает, если я использую ту же информацию "шаблона", что и базовую

plugins: [
    new HtmlWebpackPlugin({
      template: "public/index.html",
      favicon: "public/assets/img/favicon.ico",
      title: "Production"
    }),
  ]

Чтобы сделать это, я должен включить template во ВСЕ 3 файла. Это, кажется, побеждает цель "общего" конфигурации. Я понимаю, что в prod это new экземпляр плагина, но, опять же, я думал, что слияние base & prod будет осуществляться по-другому.

Как это действительно работает? Почему я должен включить его во второй раз? Есть ли способ «поделиться» экземпляром правильно?

...