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实现弹出窗口效果的实例代码
Nov 28 Javascript
jQuery元素选择器用法实例
Dec 23 Javascript
jquery+ajax实现注册实时验证实例详解
Dec 08 Javascript
第六章之辅组类与响应式工具
Apr 25 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
Jun 17 Javascript
对js eval()函数的一些见解
Aug 15 Javascript
canvas学习之API整理笔记(一)
Dec 29 Javascript
js实现简单的选项卡效果
Feb 23 Javascript
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
echart简介_动力节点Java学院整理
Aug 11 Javascript
Angular2实现的秒表及改良版示例
May 10 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
Jul 05 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网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
php输出xml属性的方法
2015/03/19 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
分享8个Laravel模型时间戳使用技巧小结
2020/02/12 PHP
jQuery 表单验证扩展(四)
2010/10/20 Javascript
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
JavaScript数字和字符串转换示例
2014/03/26 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
jquery uploadify如何取消已上传成功文件
2017/02/08 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
浅述python中argsort()函数的实例用法
2017/03/30 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
python内存动态分配过程详解
2019/07/15 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
美国在线工具商店:Acme Tools
2018/06/26 全球购物
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
个人求职信范文分享
2013/12/13 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
2014年居委会工作总结
2014/12/09 职场文书
二手车转让协议书
2015/01/29 职场文书
工程部经理岗位职责
2015/02/02 职场文书
大客户经理岗位职责
2015/04/09 职场文书
任长霞观后感
2015/06/16 职场文书
Django中的JWT身份验证的实现
2021/05/07 Python
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript
服务器nginx权限被拒绝解决案例
2022/09/23 Servers