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 相关文章推荐
IE8 中使用加速器(Activities)
May 14 Javascript
简单几行JS Code实现IE邮件转发新浪微博
Jul 03 Javascript
Nginx上传文件全部缓存解决方案
Aug 17 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
Oct 20 Javascript
基于JS实现checkbox全选功能实例代码
Oct 31 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
Jan 17 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
Feb 09 Javascript
Javascript Promise用法详解
May 10 Javascript
js实现简单选项卡功能
Mar 23 Javascript
JS实现使用POST方式发送请求
Aug 30 Javascript
微信小程序实现时间进度条功能
Nov 17 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
Jun 08 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
php代码优化及php相关问题总结
2006/10/09 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
2012/10/24 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
使用vue编写h5公众号跳转小程序的实现代码
2020/11/27 Vue.js
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
决策树的python实现方法
2014/11/18 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
对python的文件内注释 help注释方法
2018/05/23 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
Css3新特性应用之视觉效果实例
2016/12/12 HTML / CSS
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
建筑工程专业学生的自我评价
2013/12/25 职场文书
迟到检讨书400字
2014/01/13 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
公司管理制度范本
2015/08/03 职场文书
Python实现文字pdf转换图片pdf效果
2022/04/03 Python
ubuntu下常用apt命令介绍
2022/06/05 Servers