@ Комментарий Адама указал мне правильное направление.Я использовал опцию exclude для babel .Я отредактировал свой babel.config.js
, чтобы он выглядел так:
module.exports = {
presets: [
'@vue/app',
],
exclude: ['word-dictionary.js'],
};
, но он работал только для сервера разработки.Чтобы заставить его работать для производственной сборки, я провел долгую ночь, читая документацию о конфигурации webpack и документацию о цепи webpack , и придумал решение.В vue.config.js
я добавил следующее:
chainWebpack: (config) => {
config.module.rules.get('js').exclude.add(/[\\/]src[\\/]assets[\\/]word-dictionary[\\.]js/);
config.optimization.merge({
splitChunks: {
chunks: 'all',
cacheGroups: {
dictionary: {
minChunks: 1,
name: 'dictionary',
test: /[\\/]src[\\/]assets[\\/]word-dictionary[\\.]js/,
},
},
},
});
},
, которое исключает возможность обработки словаря babel, а также разбивает его на собственный фрагмент.Было полезно использовать команду vue-cli-service inspect
(или запустить vue ui
и запустить inspect task
), чтобы увидеть конфигурацию веб-пакета, сгенерированную Vue CLI
Я фактически не использовал это решение, как я решилполучить словарь в виде открытого текста после загрузки компонента и использовать indexOf для поиска слов.