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事件实现代码
Mar 12 Javascript
JS控件的生命周期介绍
Oct 22 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
Apr 01 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
May 07 Javascript
JavaScript中的值类型转换介绍
Dec 31 Javascript
jQuery EasyUI Pagination实现分页的常用方法
May 21 Javascript
JS实现的简单拖拽功能示例
Mar 13 Javascript
Angular实现可删除并计算总金额的购物车功能示例
Dec 26 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
May 03 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
May 23 Javascript
node.js的Express服务器基本使用教程
Jan 09 Javascript
node express使用HTML模板的方法示例
Aug 22 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
php顺序查找和二分查找示例
2014/03/27 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
JS获取父节点方法
2009/08/20 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
js实现String.Fomat的实例代码
2016/09/02 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
jquery判断滚动条距离顶部的距离方法
2018/09/05 jQuery
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
python中pass语句用法实例分析
2015/04/30 Python
Python环境变量设置方法
2016/08/28 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
本科生个人求职自荐信
2013/09/26 职场文书
解除财产保全担保书
2014/05/20 职场文书
教师年度个人总结
2015/02/11 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫