Создание файлов поставщиков веб-пакетов в подкаталогах - PullRequest
1 голос
/ 24 мая 2019

Я пытаюсь вывести файлы вендора (cacheGroup) из веб-пакета в тот же каталог, что и файлы моего основного модуля.Лучше всего объяснить некоторые настройки веб-пакета.

В настоящее время конфигурация:

var config = {
  mode: mode,
  context: __dirname,
  entry: {
    "Client": "./Client/entry.coffee",
    "Public": "./Public/entry.coffee",
  },
  output: {
    path: path.join(__dirname, "Build", environment),
    filename: environment === "production" ? "[name]/Assets/bundle-[hash].js" : "[name]/Assets/bundle.js",
    publicPath: "/"
  },

Я пытаюсь разделить группы кеша поставщиков с помощью:

  optimization: {
    splitChunks: {
      chunks: (chunk) => {
        return chunk.name.startsWith("client");// || chunk.name == "Public";
      },
      automaticNameDelimiter: "-",
      name: true,
      cacheGroups: {
        vendors: {
          test: /[\\/]node_modules[\\/]/,
          reuseExistingChunk: true,
        },
      },
    },
  },

Это будетвыходные файлы в структуре, когда я запускаю webpack, примерно как:

./Build/dev/Client/Assets/bundle.js
./Build/dev/vendor-Client/Assets/vendor-Client.js

Но я хочу, чтобы это было

./Build/dev/Client/Assets/bundle.js
./Build/dev/Client/Assets/vendor-Client.js

Кажется, просто нет способа изменить каталог поставщикафайлы для сопоставления.

1 Ответ

0 голосов
/ 24 мая 2019

Для этой строки кода вы делаете неправильно

filename: environment === "production" ? "[name]/Assets/bundle-[hash].js" : "[name]/Assets/bundle.js",

Для этой строки [name]/Assets/bundle.js

Вы используете [имя], поэтому оно встроено в это как 1/Assets/bundle.js 2/Assets/bundle.js

Таким образом, вы должны изменить на

Assets/[name].bundle.js

Так что все будет встроено в папку активов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...