Вы можете использовать разбиение кода веб-пакета с комментарием webpackChunkName
.Это создаст отдельный чанк, который затем можно будет изменить после сборки.
Вот код, позволяющий сделать его доступным внутри компонента vue
config.json:
{
"abc": 123,
"def": 123
}
компонент vue:
export default {
name: 'app',
data: function () {
return {
config: null
}
},
created() {
import (/* webpackChunkName: "config", webpackMode: "lazy-once" */ "./config.json").then(r => this.config = r.default);
}
}
снаружикомпонента
let config;
import(/* webpackChunkName: "config" */ './config.js')
.then(r => {config : r.default})
.then(/* do stuff with config */);
Некоторые вещи, на которые следует обратить внимание: - поскольку он больше не является частью одного и того же пакета, пакет конфигурации должен исходить от сетевого запроса, что означает, что ответ асинхронный, поэтому вы не можете выполнить простое задание.Это может потребовать менее чем тривиальных изменений в вашем коде, так как вы не сможете использовать значение до его загрузки, поэтому любой другой код, который полагается на него, должен будет подождать.- используете ли вы json или js-файл в исходном коде, результирующий пакет webpack будет js-файлом и будет почти таким же, хотя версия json немного меньше
пакет конфигурации будет выглядеть примерно так
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["config"],{"7dc5":function(n){n.exports={abc:123,def:123}}}]);
//# sourceMappingURL=config.26910bd8.js.map
где {abc:123,def:123}
- это часть данных, которую теперь легко изменить.
ресурсы: