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 相关文章推荐
使用prototype.js 的时候应该特别注意的几个问题.
Apr 12 Javascript
JavaScript 应用类库代码
Jun 02 Javascript
关于取不到由location.href提交而来的上级页面地址的解决办法
Jul 30 Javascript
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
Aug 23 Javascript
Javascript中自动切换焦点实现代码
Dec 15 Javascript
JavaScript中的Web worker多线程API研究
Dec 06 Javascript
jQuery简单实现两级下拉菜单效果代码
Sep 15 Javascript
js阻止默认右键的下拉菜单方法
Jan 02 Javascript
layui使用数据表格实现购物车功能
Jul 26 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
Sep 28 Javascript
微信小程序间使用navigator跳转传值问题实例分析
Mar 27 Javascript
vue 避免变量赋值后双向绑定的操作
Nov 07 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
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
php MessagePack介绍
2013/10/06 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
Javascript - HTML的request类
2006/07/15 Javascript
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
Python读写ini文件的方法
2015/05/28 Python
python实现图片变亮或者变暗的方法
2015/06/01 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
Python栈的实现方法示例【列表、单链表】
2020/02/22 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
Keras 使用 Lambda层详解
2020/06/10 Python
python二维图制作的实例代码
2020/12/03 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
如何进行Linux分区优化
2013/02/12 面试题
Linux面试题LINUX系统类
2014/11/19 面试题
好邻里事迹材料
2014/01/16 职场文书
暑期培训心得体会
2014/09/02 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫