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 确定css方框模型(盒模型Box Model)
Jan 22 Javascript
Jquery easyui 实现动态树
Nov 17 Javascript
jQuery实现图片文字淡入淡出效果
Dec 21 Javascript
JS中script标签defer和async属性的区别详解
Aug 12 Javascript
JavaScript队列、优先队列与循环队列
Nov 14 Javascript
ES6新特性六:promise对象实例详解
Apr 21 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
Sep 05 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
Jul 28 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
Mar 04 Javascript
javascript实现手动点赞效果
Apr 09 Javascript
微信小程序实现的canvas合成图片功能示例
May 03 Javascript
javascript实现移动端轮播图
Dec 09 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 中使用随机数的三个步骤
2006/10/09 PHP
如何判断php数组的维度
2013/06/10 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
php绘制一条直线的方法
2015/01/24 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
javascript新手语法小结
2008/06/15 Javascript
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
Bootstrap Table从零开始
2017/06/30 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
vue.js实现只能输入数字的输入框
2019/10/19 Javascript
ant-design-vue中的select选择器,对输入值的进行筛选操作
2020/10/24 Javascript
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
pyshp创建shp点文件的方法
2018/12/31 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
详解python pandas 分组统计的方法
2019/07/30 Python
python判断自身是否正在运行的方法
2019/08/08 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
Python实现PS滤镜中的USM锐化效果
2020/12/04 Python
IBatis持久层技术
2016/07/18 面试题
英语系毕业生自荐信
2013/10/31 职场文书
工程师岗位职责规定
2014/02/26 职场文书
药剂专业自荐书
2014/06/20 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL