- 40
- 0
问题背景
我知道,通过CommonsChunkPlugin 可以将 entry 的入口文件中引用多次的文件抽离打包成一个公用文件,从而减少代码重复冗余
entry: {
main: './src/main.js',
user: './src/user.js'
},
......
new webpack.optimize.CommonsChunkPlugin({
name: "commons",
filename: 'common.js',
minChunks: 2,
})
// 打包生成一个文件common.js ,包含main.js 和 user.js 中引用两次及以上的模块代码
那么当我使用了 vue-router 代码分割 懒加载的时候,每个路由对应的.vue文件中,共同引用了多次的模块,怎么自动抽离出来。
问题描述
懒加载路由文件
const
Index = () => import(/* webpackChunkName: "index" */ "page/index/Index.vue"),
User = () => import(/* webpackChunkName: "userIndex" */ "page/user/Index.vue"),
UserDetail = () => import(/* webpackChunkName: "userDetail" */ "page/user/Detail.vue"),
...
// page/index/Index.vue 首页路由文件
<template>首页</template>
<script>
import pub from 'script/public'
...
</script>
// 用户页
// page/index/Index.vue 用户页路由文件
<template>用户页</template>
<script>
import pub from 'script/public'
...
</script>
上述使用了vue-router懒加载打包出来的 首页路由文件index.js 和 用户页文件userIndex.js 都会包含一份 public.js的代码,重复了。
我的问题就是,在代码分割的代码中,怎么自动抽离公共代码? 就像CommonsChunkPlugin的效果一样,或者说CommonsChunkPlugin怎么在 code-splitting 的场景上使用?
- 共 0 条
- 全部回答
-
等待、埖开 普通会员 1楼
在代码分割与懒加载情况下,抽离公用模块代码主要有两种方式:
- 使用Webpack的插件:Webpack有很多插件可以帮助你抽离公用模块。例如,你可以使用
splitChunks插件来将公共模块拆分成独立的文件,然后在你需要的时候加载它们。
例如,你可以在你的webpack配置文件中添加以下代码:
javascript module.exports = { // ... optimization: { splitChunks: { cacheGroups: { common: { test: /[\\/]node_modules[\\/]/, chunks: 'all', name: 'common', }, }, }, }, };在这个例子中,
splitChunks插件将node_modules目录下的所有公共模块拆分成一个名为common的文件夹。- 使用懒加载:你可以使用
懒加载技术来延迟加载一些模块。例如,你可以在你的HTML文件中使用懒加载来加载你不再需要的模块。
例如,你可以在你的HTML文件中添加以下代码:
```html
```
在这个例子中,
@vue/genericon@5.1.0/dist/genericon.min.js和@vue/vue@2.6.15/dist/vue.min.js是两个不同的库,它们将分别被加载,而不是一次性加载所有。然后,你可以在你的JavaScript文件中使用
import语句来导入这两个库:```javascript import Genericon from '@vue/genericon' import Vue from '@vue/vue'
// ...
Sorry, there are no more items to show.
{{ item.title }}
{{ item.content }}
```
在这个例子中,
import语句将@vue/genericon和@vue/vue库导入,并分别作为GeneratorIcon和Vue组件的组件。然后,你可以在模板中使用这些组件来显示你的公共模块。 - 使用Webpack的插件:Webpack有很多插件可以帮助你抽离公用模块。例如,你可以使用
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

