前言

年初的时候公司的老后台系统实在难以维护和继续在其上开发了,因为这个系统被很多人写过页面,有前端有后端,编写前端代码时都非常随意,加之没有模块化,复用性和可维护性都极低,便下定决定,重新搞一套。
经过一段时间的调研选择了vue全家桶+elementUI来开发后台系统,让交互体验更好,让开发体验更好,让生产效率提高。
从零搭建其实考虑的事情还挺多的,比如:
这篇文章来记录下和脚手架相关的改造,首先其实就是上了vue-cli来做,可是呢?由于预计项目会有很多页面,这些页面其实是分模块的,不同模块的页面之前其实关系不大。所以我觉得一个用户其实大部分时候只会用到其中一个模块的页面,如果把所有页面做成一个单页应用很多资源加载就不是很必要了,所以第一个改造就是:做成多入口打包,也就是做成多个单页应用,每个模块一个入口。
/build/utils
exports.getEntries = function (globPath) {
var entries = {}
glob.sync(globPath).forEach(function (entry) {
var basename = path.basename(entry, path.extname(entry))
entries[basename] = entry
})
return entries
}
/build/webpack.base.conf
module.exports = {
entry: utils.getEntries('./src/modules/*/*.js'),
/build/webpack.dev.conf
/build/weback.prod.conf
var modules = utils.getEntries('./src/modules/*/*.html')
Object.keys(modules).forEach(function (moduleName) {
var config = {
filename: moduleName + '/index.html',
template: modules[moduleName],
inject: true,
excludeChunks: Object.keys(modules).filter(function (name) {
return name != moduleName
})
}
module.exports.plugins.push(new HtmlWebpackPlugin(config))
})
这样就完成了多页面的入口配置,其核心就是两点:1. 入口配置成数组。2. plugins里面添加多个HtmlWebpackPlugin分别对应每一个页面,完成js打包后路径的自动注入功能。
这里还有个地方需要注意,就是抽取公用的js和css代码出来,这里做了一下改造,就是echarts指定提取出来,而不是按引用次数那种自动提取, 这里还踩了个坑,详细见注释。
在webpack.prod.conf的plugins里面加入:
entry: {
vendor: ['vue', 'vue-router', 'vuex', 'element-ui'],
echarts: ['vue-echarts']
},
// 这个地方天坑啊~~~死人了。。。:(
// vendor是echarts的父模块,顺序不能反:https://github.com/webpack/webpack/issues/1943
// 包括声明CommonsChunkPlugin的顺序也是有关系的,不是随意的,后声明的是顶级模块,先声明的是依赖顶级模块的模块
// HtmlWebpackPlugin注入模块链接的时候的顺序也是由此保证的
new webpack.optimize.CommonsChunkPlugin({
names: ['echarts', 'vendor'],
minChunks: function (module, count) { // 抽取公用vendor.css
// console.log(module.resource)
return (
module.resource &&
/\.css$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对的支持。
# vue
# cli脚手架
# vuecli脚手架
# vue.js
# cli
# vue.js的手脚架vue-cli项目搭建的步骤
# 详解如何使用vue-cli脚手架搭建Vue.js项目
# vue.js之vue-cli脚手架的搭建详解
# vue-cli入门之项目结构分析
# Vue学习笔记进阶篇之vue-cli安装及介绍
# 深入理解Vue-cli搭建项目后的目录结构探秘
# 详解vue-cli本地环境API代理设置和解决跨域
# 详解vue-cli快速构建项目以及引入bootstrap、jq
# 使用 vue.js 构建大型单页应用
# 的是
# 多个
# 这篇文章
# 会有
# 有个
# 我觉得
# 第一个
# 上了
# 如有
# 很多人
# 不是很
# 只会
# 人了
# 来做
# 其中一个
# 谢谢大家
# 要了
# 需要注意
# 写过
# 其上
相关文章:
如何快速搭建二级域名独立网站?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
如何在Windows虚拟主机上快速搭建网站?
javascript中的try catch异常捕获机制用法分析
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何配置WinSCP新建站点的密钥验证步骤?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
建站之星代理商如何保障技术支持与售后服务?
建站DNS解析失败?如何正确配置域名服务器?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
湖北网站制作公司有哪些,湖北清能集团官网?
自助网站制作软件,个人如何自助建网站?
建站之星导航配置指南:自助建站与SEO优化全解析
如何通过万网虚拟主机快速搭建网站?
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
佛山网站制作系统,佛山企业变更地址网上办理步骤?
如何用狗爹虚拟主机快速搭建网站?
如何选择建站程序?包含哪些必备功能与类型?
如何获取上海专业网站定制建站电话?
如何基于云服务器快速搭建网站及云盘系统?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
临沂网站制作企业,临沂第三中学官方网站?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
如何零基础在云服务器搭建WordPress站点?
网站制作壁纸教程视频,电脑壁纸网站?
如何选择适配移动端的WAP自助建站平台?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
如何通过VPS搭建网站快速盈利?
如何在IIS中新建站点并解决端口绑定冲突?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
常州自助建站费用包含哪些项目?
模具网站制作流程,如何找模具客户?
官网网站制作腾讯审核要多久,联想路由器newifi官网
香港服务器租用每月最低只需15元?
建站之星各版本价格是多少?
电商网站制作公司有哪些,1688网是什么意思?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
如何通过wdcp面板快速创建网站?
教学网站制作软件,学习*后期制作的网站有哪些?
外贸公司网站制作哪家好,maersk船公司官网?
郑州企业网站制作公司,郑州招聘网站有哪些?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
c# await 一个已经完成的Task会发生什么
建站之星代理费用多少?最新价格详情介绍
如何用搬瓦工VPS快速搭建个人网站?
如何在阿里云购买域名并搭建网站?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
建站主机选虚拟主机还是云服务器更好?
*请认真填写需求信息,我们会在24小时内与您取得联系。