WebPack配置vue多页面的技巧


Posted in Javascript onMay 15, 2018

WebPack虐我千百遍,我带她如初恋。一个项目前台页面写差不多了,webpack几乎零配置,也算work起来了。现在需要编写后台管理界面,另起一个单独的项目,那是不存在的。于是网上了搜了大把大把的文章,很多都是修改了项目的结构,讨厌,vue-cli搞的那一套,干嘛要修改来修改去的。像我这种前端小萌新,webpack的配置改着就把前台部分run不起来了。。。

于是就有了这个笔记:

先看看项目的结构:

├── build
├── config
├── src
│   ├── api
│   ├── assets
│   ├── components
│   ├── pages
│   ├── router
│   ├── utils
│   ├── vuex
│   ├── App.vue
│   ├── main.js
│   ├── admin.js
│   └── Admin.vue
├── static
│   └── images
├── README.md
├── admin.html
├── index.html
├── package.json
└── yarn.lock

我相信这样的结构大家一定很熟悉,除了 admin.html 和src文件夹下面的 Admin.vue 、 admin.js ,还有一些api,pages,vuex等文件夹,就是最常见的一个vue-cli初始化的项目结构。

我想要就是新增一个后台管理界面的入口admin.html,其他能够共用的还是共用,进入正题:

修改webpack的配置文件

修改 webpack.base.conf.js

打开 ~\build\webpack.base.conf.js ,找到entry,添加多入口:

entry: {
 app: './src/main.js',
 admin: './src/admin.js' //新增
},

这样运行编译的时候,每一个入口都会对应一个chunk。

run dev配置的修改

打开 ·~\build\webpack.dev.conf.js· ,在plugins下找到 HtmlWebpackPlugin ,在其后面添加对应的多页,并为每个页面添加Chunk配置如下:

new HtmlWebpackPlugin({
 filename: 'index.html', //生成的html
 template: 'index.html', //来源html
 inject: true, 
 chunks: ['app']//需要引入的Chunk,不配置就会引入所有页面的资源
}),
new HtmlWebpackPlugin({
 filename: 'admin.html',
 template: 'admin.html',
 inject: true,
 chunks: ['admin']
}),

run build配置的修改

修改config/index.js

打开 ~\config\index.js ,找到build下的 index: path.resolve(__dirname, '../dist/index.html') ,在其后添加多页:

admin: path.resolve(__dirname, '../dist/admin.html'),

修改 webpack.prod.conf.js

打开 ~\build\webpack.prod.conf.js ,在plugins下找到 HtmlWebpackPlugin ,在其后面添加对应的多页,并为每个页面添加Chunk配置:

new HtmlWebpackPlugin({
 filename: config.build.index,
 template: 'index.html',
 inject: true,
 minify: {
 removeComments: true,
 collapseWhitespace: true,
 removeAttributeQuotes: true
 // more options:
 // https://github.com/kangax/html-minifier#options-quick-reference
 },
 // necessary to consistently work with multiple chunks via CommonsChunkPlugin
 chunksSortMode: 'dependency',
 chunks: ['manifest', 'vendor', 'app']
}),
new HtmlWebpackPlugin({
 filename: config.build.admin,
 template: 'admin.html',
 inject: true,
 minify: {
 removeComments: true,
 collapseWhitespace: true,
 removeAttributeQuotes: true
 },
 chunksSortMode: 'dependency',
 chunks: ['manifest', 'vendor', 'admin']
}),

End

恩,没有了,就不修改什么项目结构了,过程越复杂越容易出错。上面webpack的配置简单能看懂。

Javascript 相关文章推荐
调用js时ie6和ie7,ff的区别
Aug 19 Javascript
防止xss和sql注入:JS特殊字符过滤正则
Apr 18 Javascript
JS实现文字向下滚动完整实例
Feb 06 Javascript
JS只能输入正整数的简单实例
Oct 07 Javascript
JavaScript实现按键精灵的原理分析
Feb 21 Javascript
老生常谈js中0到底是 true 还是 false
Mar 08 Javascript
vue权限路由实现的方法示例总结
Jul 29 Javascript
理顺8个版本vue的区别(小结)
Sep 17 Javascript
使用Angular 6创建各种动画效果的方法
Oct 10 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
Sep 28 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
Jan 29 Javascript
JavaScript实现前端网页版倒计时
Mar 24 Javascript
修改npm全局安装模式的路径方法
May 15 #Javascript
修改node.js默认的npm安装目录实例
May 15 #Javascript
Vue中的scoped实现原理及穿透方法
May 15 #Javascript
vue-cli项目中使用Mockjs详解
May 14 #Javascript
vue使用自定义icon图标的方法
May 14 #Javascript
基于Vue2x的图片预览插件的示例代码
May 14 #Javascript
vue组件中的数据传递方法
May 14 #Javascript
You might like
第十二节--类的自动加载
2006/11/16 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
javascript 短路法代码精简
2009/08/20 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
浅谈javascript的Touch事件
2015/09/27 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
解析vue中的$mount
2017/12/21 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
Python日期操作学习笔记
2008/10/07 Python
Python学习笔记(二)基础语法
2014/06/06 Python
python冒泡排序简单实现方法
2015/07/09 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
解决Tensorflow安装成功,但在导入时报错的问题
2018/06/13 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
华润集团网上药店:健一网
2016/09/19 全球购物
一年级班主任感言
2014/03/08 职场文书
写求职信要注意什么问题
2014/04/12 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
小学英语复习计划
2015/01/19 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电