Отключить кеш-загрузчик в webpack 4 vue cli 3 - PullRequest
0 голосов
/ 28 февраля 2019

Я использую проект vue-cli 3 / webpack 4.Моя сборка генерируется на AWS Codebuild, которая запускает новый экземпляр виртуальной машины для каждой сборки.Cache -loader в веб-пакете кэширует результаты babel-loader, vue-loader и terser.Но поскольку я каждый раз запускаю новую экземплярную ВМ, я этим не пользуюсь.Если само кеширование имеет некоторые накладные расходы, лучше отключить его, как это предлагается в некоторых местах, например, здесь.

Как настроить webpack через объект vue.conf для удаления загрузчика кэша.Спасибо

Мой проект сгенерировал конфигурацию webpack для производства:

rules: [
      /* config.module.rule('vue') */
      {
        test: /\.vue$/,
        use: [
          /* config.module.rule('vue').use('cache-loader') */
          {
            loader: 'cache-loader',
            options: {
              cacheDirectory: '/Users/digitalsuppliers/work/new_build_branch/bmsconsole-client/node_modules/.cache/vue-loader',
              cacheIdentifier: '22f91b09'
            }
          },
          /* config.module.rule('vue').use('vue-loader') */
          {
            loader: 'vue-loader',
            options: {
              compilerOptions: {
                preserveWhitespace: false
              },
              cacheDirectory: '/Users/digitalsuppliers/work/new_build_branch/bmsconsole-client/node_modules/.cache/vue-loader',
              cacheIdentifier: '22f91b09'
            }
          }
        ]
      },

{
        test: /\.jsx?$/,
        exclude: [
          function () { /* omitted long function */ }
        ],
        use: [
          /* config.module.rule('js').use('cache-loader') */
          {
            loader: 'cache-loader',
            options: {
              cacheDirectory: '/Users/digitalsuppliers/work/new_build_branch/bmsconsole-client/node_modules/.cache/babel-loader',
              cacheIdentifier: 'e8179b56'
            }
          },
          /* config.module.rule('js').use('thread-loader') */
          {
            loader: 'thread-loader'
          },
          /* config.module.rule('js').use('babel-loader') */
          {
            loader: 'babel-loader'
          }
        ]
  }

1 Ответ

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

Одним из решений является отключение кеша либо полностью, либо только в процессе производства / разработки в зависимости от условий.Чтобы использовать его, откройте vue.config-js и напишите туда

module.exports = {
  chainWebpack: config => {
    // disable cache for prod only, remove the if to disable it everywhere
    // if (process.env.NODE_ENV === 'production') {
      config.module.rule('vue').uses.delete('cache-loader');
      config.module.rule('js').uses.delete('cache-loader');
      config.module.rule('ts').uses.delete('cache-loader');
      config.module.rule('tsx').uses.delete('cache-loader');
    // }
  },

В этом примере я закомментировал условие, поэтому кеш-загрузчик вообще не используется.

...