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 相关文章推荐
jQuery技巧大放送 学习jquery的朋友可以看下
Oct 14 Javascript
子页向父页传值示例
Nov 27 Javascript
JavaScript中Cookie操作实例
Jan 09 Javascript
js获取页面description的方法
May 21 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
Jun 05 Javascript
jquery过滤特殊字符',防sql注入的实现方法
Aug 17 Javascript
jQuery实现判断控件是否显示的方法
Jan 11 Javascript
DVA框架统一处理所有页面的loading状态
Aug 25 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
Nov 28 Javascript
vue.js简单配置axios的方法详解
Dec 13 Javascript
浅谈Webpack 持久化缓存实践
Mar 22 Javascript
基于layui框架响应式布局的一些使用详解
Sep 16 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
如何将数据从文本导入到mysql
2006/10/09 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
js简单时间比较的方法
2016/08/02 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
浅析Jquery操作select
2016/12/13 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
Python装饰器的函数式编程详解
2015/02/27 Python
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
Python中的推导式使用详解
2015/06/03 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
会计实习生工作总结的自我评价
2013/10/07 职场文书
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
个性大学生自我评价
2013/12/04 职场文书
企业军训感想
2014/02/07 职场文书
致裁判员加油稿
2014/02/08 职场文书
经销商订货会主持词
2014/03/27 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
管理人员岗位职责
2015/02/14 职场文书
如何用JS实现网页瀑布流布局
2021/04/24 Javascript
防止web项目中的SQL注入
2021/12/06 MySQL