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 相关文章推荐
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
Jan 15 Javascript
js string 转 int 注意的问题小结
Aug 15 Javascript
如何在Linux上安装Node.js
Apr 01 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
Jun 16 Javascript
Javascript 闭包详解及实例代码
Nov 30 Javascript
Vue.js学习示例分享
Feb 05 Javascript
JavaScript输入框字数实时统计更新
Jun 17 Javascript
微信小程序使用request网络请求操作实例
Dec 15 Javascript
vue2 前端搜索实现示例
Feb 26 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
Oct 12 Javascript
Angular8路由守卫原理和使用方法
Aug 29 Javascript
JS实现时间校验的代码
May 25 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 开始 PHP 会话
2006/12/21 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
JavaScript中Array 对象相关的几个方法
2006/12/22 Javascript
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
vue+element+Java实现批量删除功能
2019/04/08 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
2014/05/06 Python
详解Python的Django框架中的templates设置
2015/05/11 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
Python实现字符串反转的常用方法分析【4种方法】
2017/09/30 Python
django最快程序开发流程详解
2019/07/19 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
python温度转换华氏温度实现代码
2020/12/06 Python
新闻专业个人自我评价
2013/09/21 职场文书
我的求职计划书
2014/01/10 职场文书
组织生活会发言材料
2014/12/15 职场文书
民主生活会意见
2015/06/05 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
PHP命令行与定时任务
2021/04/01 PHP
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang
Nginx配置之禁止指定IP访问
2022/05/02 Servers
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers
CSS实现背景图片全屏铺满自适应的3种方式
2022/07/07 HTML / CSS