vue-cli扩展多模块打包的示例代码


Posted in Javascript onApril 09, 2018

场景

在实际的项目开发中会出现这样的场景,项目中需要多个模块(单页或者多页应用)配合使用的情况,而vue-cli默认只提供了单入口打包,所以就想到对vue-cli进行扩展

实现

首先得知道webpack是提供了多入口打包,那就可以从这里开始改造

新建build/entry.js

const path = require('path')
const fs = require('fs')
const moduleDir = path.resolve(__dirname, '../src/modules')
let entryObj = {}
let moduleItems = fs.readdirSync(moduleDir)
moduleItems.forEach(item => {
 entryObj[`${item}`] = `./src/modules/${item}/main.js`

})

module.exports = entryObj

这里用到了nodejs的fs和path模块,可以查看文档http://nodejs.cn/api/fs.html,http://nodejs.cn/api/path.html,可以根据自己的项目配置更改,此处是以src/modules/文件夹下的目录作为模块,每个模块中都有一个main.js作为入口文件

修改build/webpack.base.conf.js中entry

const entryObj = require('./entry')

module.exports = {

 entry: entryObj

}

接下来就是如何将打包好的文件注入到html中,这里利用html-webpack-plugin插件来解决这个问题,首先你需要有一个html的模板文件,然后在webpack配置中更改默认的html-webpack-plugin插件配置

添加build/plugins.js 

const HtmlWebpackPlugin = require('html-webpack-plugin')
let configPlugins = []
Object.keys(entryObj).forEach(item => {
 configPlugins.push(new HtmlWebpackPlugin(
  {

   filename: '../dist/' + item + '.html',

   template: path.resolve(__dirname, '../index.html'),

   chunks: [item]
  }
 ))
})
module.exports = configPlugins

修改build/webpack.dev.conf.js配置 

module.exports = {
  plugins: configPlugins
}

实战

vue移动web通用脚手架

github地址: https://github.com/GavinZhuLei/vue-mobile

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
如何取得中文输入的真实长度?
Jun 24 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
Jun 09 Javascript
jQuery javaScript捕获回车事件(示例代码)
Nov 07 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
Feb 07 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
Aug 22 Javascript
JavaScript事件委托技术实例分析
Feb 06 Javascript
javascript HTML5文件上传FileReader API
Mar 27 Javascript
Angularjs CURD 详解及实例代码
Sep 14 Javascript
简单理解vue中实例属性vm.$els
Dec 01 Javascript
微信小程序商城项目之商品属性分类(4)
Apr 17 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 jQuery
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
Feb 11 Javascript
webpack中的热刷新与热加载的区别
Apr 09 #Javascript
vue写一个组件
Apr 09 #Javascript
Vue 中使用 CSS Modules优雅方法
Apr 09 #Javascript
JS中双击和单击事件冲突的解决方法
Apr 09 #Javascript
vue脚手架及vue-router基本使用
Apr 09 #Javascript
vue 设置proxyTable参数进行代理跨域
Apr 09 #Javascript
Angular入口组件(entry component)与声明式组件的区别详解
Apr 09 #Javascript
You might like
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
详解PHP数组赋值方法
2015/11/07 PHP
基于thinkphp6.0的success、error实现方法
2019/11/05 PHP
一些技巧性实用js代码小结
2009/10/14 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
web前端开发也需要日志
2010/12/09 Javascript
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
浅析js封装和作用域
2013/07/09 Javascript
js监听键盘事件示例代码
2013/07/26 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
jquery实现的一个文章自定义分段显示功能
2014/05/23 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
vue中如何去掉空格的方法实现
2018/11/09 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
angular4+百分比进度显示插件用法示例
2019/05/05 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
跟老齐学Python之复习if语句
2014/10/02 Python
python绘制地震散点图
2019/06/18 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
2020/03/06 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
python基于win32api实现键盘输入
2020/12/09 Python
2014年创卫实施方案
2014/02/18 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
基于angular实现树形二级表格
2021/10/16 Javascript