Vue.js 如何确保此vue应用程序不';在生产中是否超过建议的244kb?

Vue.js 如何确保此vue应用程序不';在生产中是否超过建议的244kb?,vue.js,vuejs2,Vue.js,Vuejs2,这里有一个vue文件,它导入了一个json文件,其中包含大约9000条记录。 如何确保json文件不与组件一起编译 使用动态导入。像这样: import( /* webpackChunkName: "my_json" */ './src/my.json' ).then(({default: myJson}) => { // do whatever you like here~ console.log(myJson); }); 文件:

这里有一个vue文件,它导入了一个json文件,其中包含大约9000条记录。 如何确保json文件不与组件一起编译


使用动态导入。像这样:

import(
    /* webpackChunkName: "my_json" */
    './src/my.json'
).then(({default: myJson}) => {
    // do whatever you like here~
    console.log(myJson);
});
文件:

如果json文件太大,您仍然会收到大小超过警告。 但是json文件将加载异步,因此不会导致任何性能问题


使用动态导入。像这样:

import(
    /* webpackChunkName: "my_json" */
    './src/my.json'
).then(({default: myJson}) => {
    // do whatever you like here~
    console.log(myJson);
});
文件:

如果json文件太大,您仍然会收到大小超过警告。 但是json文件将加载异步,因此不会导致任何性能问题


一种简单的方法是将要访问的JSON文件放在
public
文件夹()中。然后在运行时使用AJAX调用该文件

这将避免扩展应用程序包,但Vue可能仍然显示您包含了大量资源。此方法还允许您将数据拆分为较小的数据块,并根据需要在应用程序中加载它们

下面是一个示例,假设数据文件位于
/public/data/mydata.json
。此外,我建议使用,使AJAX的东西更容易

从“axios”导入axios
导出默认值{
名称:“Vue组件”,
创建(){
这是fetchData();
},
方法:{
fetchData(){
get('/data/mydata.json')。然后(响应=>{
//用response.data做点什么
})
}
}

}
一种简单的方法是将要访问的JSON文件放入
公共文件夹()。然后在运行时使用AJAX调用该文件

这将避免扩展应用程序包,但Vue可能仍然显示您包含了大量资源。此方法还允许您将数据拆分为较小的数据块,并根据需要在应用程序中加载它们

下面是一个示例,假设数据文件位于
/public/data/mydata.json
。此外,我建议使用,使AJAX的东西更容易

从“axios”导入axios
导出默认值{
名称:“Vue组件”,
创建(){
这是fetchData();
},
方法:{
fetchData(){
get('/data/mydata.json')。然后(响应=>{
//用response.data做点什么
})
}
}

}
谢谢@Old\u dream,这会起作用,但不能解决我的问题。正如您提到的,它仍然会使用生产版本进行编译,它只会异步获得它。异步加载不会阻止脚本运行。因此它解决了性能问题。@AfolayanFavourYeah,我确实尝试过使用copywebpack插件,因为它在构建时会将文件复制到
dist
文件夹中,所以控制台仍然会抱怨文件的大小,而我知道此时对此我无能为力。但是,无论如何,它都不包括在构建中。所以我要买这个。谢谢@Old_dream,这个可以用,但不能解决我的问题。正如您提到的,它仍然会使用生产版本进行编译,它只会异步获得它。异步加载不会阻止脚本运行。因此它解决了性能问题。@AfolayanFavourYeah,我确实尝试过使用copywebpack插件,因为它在构建时会将文件复制到
dist
文件夹中,所以控制台仍然会抱怨文件的大小,而我知道此时对此我无能为力。但是,无论如何,它都不包括在构建中。所以我要这个。哦,太好了。我已经实现了这一点,但希望能做些别的事情,使它变得完全小,并低于建议的244kb。谢谢,太好了。我已经实现了这一点,但希望能做些别的事情,使它变得完全小,并低于建议的244kb。谢谢