Я использую проект vue-cli 3/webpack 4. Моя сборка создается на AWS Codebuild, который запускает новый экземпляр виртуальной машины для каждой сборки. Cache -loader в webpack кэширует результаты работы babel-loader, vue-loader и terser. Но так как я запускаю новый экземпляр виртуальной машины каждый раз, я не пользуюсь этим. Если само кеширование имеет некоторые накладные расходы, лучше отключить его, как это предлагается в некоторых местах, таких как здесь.
Как настроить веб-пакет через объект vue.conf, чтобы удалить загрузчик кеша. Спасибо
Мой проект сгенерировал конфигурацию веб-пакета для производства:
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'
}
]
}





Одним из решений является отключение кеша полностью или только в производстве/разработке в зависимости от состояния. Чтобы использовать его, откройте свой 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');
// }
},
В этом примере я закомментировал условие, поэтому cache-loader вообще не используется.
если вы смонтируете компонент vue с помощью маршрутизации, попытаетесь ли вы импортировать компонент в асинхронный режим? не синхронный путь.
когда router/index.js загружается..
тогда может быть поможет вам.
бывший.
component: () => ({
component: import('@/views/your/pageComponent.vue'),
loading: this.loading,
error: this.error,
delay: this.delay,
timeout: this.timeout,
})