- 在
yarn serve
或yarn build
时在指令最后添加--FileName=[modeName]
指令 - 如只打包A模块的组件,则
FileName
为A
yarn build --FileName=A
- webpack将只打包
router/modules
下A.js
里的组件 - 以此实现按需打包
- 基于
webpack.DefinePlugin
和require.context
的联动实现按需打包。 - 通过
webpack.DefinePlugin
注入自定义变量可以绕开webpack的静态检测,实现动态正则! - 在
vue.config.js
中注入Define_FileName
,从指令中获取 - 在
router/index.js
中做参数接受,挂在require.context
的第三个参数上。 - 根据正则实现按需加载路由文件,借此进行按需打包
- demo里有A和B两个文件,其中一个有50M+的gif图片
- 执行yarn build --FileName=A 进行打包,查看包大小,只打包了A模块
- 执行yarn build --FileName=B 进行打包,查看包大小,只打包了B模块
- 执行yarn serve --FileName=B 同理,只有B模块的路由生效
yarn install
yarn serve
yarn build