关于vue多个项目的管理

环境:

vueCli + webpack

应用场景:

一套代码需要支持10几家客户,每家的皮肤,功能都有一些小的差异,主体流程大致是一样的。

思路:

在一个vue的服务中管理多个项目,各项目的功能模块相对独立,但公共部分可以提取为公共组件,并在多个项目之间进行调用

实现方法:
一、项目结构:

src文件夹下创建各项目的文件夹,并在项目文件夹中创建assetscomponentsrouterstoreview,并将App.vue(页面入口文件)、main.js(程序入口文件)、index.html(模板入口文件)放入到各项目文件夹中,在src的目录下保留assetscomponentsview文件夹来存放各项目之间公用的资源、组件和界面;如下图:
在这里插入图片描述

二、修改相关配置文件:

通过修改相关配置文件,来达到差异化编译的目的;
1、修改package.json文件
这里使用到了环境变量cross-env;

{
	// 我们在编译时输入对应的命令,如:npm run dev:one ,就可以传入相应的环境变量
	"scripts": {
	    "dev:one": "cross-env ENTRY=one webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
	    "build:one": "cross-env ENTRY=one node build/build.js",
	    "dev:two": "cross-env ENTRY=two webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
	    "build:two": "cross-env ENTRY=two node build/build.js",
	    "dev:three": "cross-env ENTRY=three webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
	    "build:three": "cross-env ENTRY=three node build/build.js",
	    "unit": "jest --config test/unit/jest.conf.js --coverage",
	    "e2e": "node test/e2e/runner.js",
	    "test": "npm run unit && npm run e2e",
	    "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs"
	  }
	  ...
  }

2、修改webpack.base.conf.js文件
修改入口文件路径和项目中引用资源、组件时使用的路径的别名,如下图:
在这里插入图片描述
3、修改webpack.dev.conf.jswebpack.prod.conf.js文件
修改入口模板html文件,如下图:

webpack.dev.conf.js在这里插入图片描述
webpack.prod.conf.js

在这里插入图片描述
4、修改config/index.js
修改编译后的文件在dist目录下的结构,如下图:
在这里插入图片描述
5、项目中组件和资源的引用

	// 引用公共组件
	import ruleTitle from 'src/components/RuleTitle'
	// 引用当前项目下的组件
	import ruleContent from '@/componentsDif/RuleContent'

6、运行项目或编译
执行命令:npm run dev:onenpm run build:one

总结:

总而言之,核心思想就是跟进编译命令传入环境变量,利用环境变量和别名的配置来差异化打包。比较难的是如何控制组件的颗粒度,如何拆分组件,这个需要跟据需求的不同来实际定制。

参考文档:https://segmentfault.com/a/1190000015424032、https://www.jianshu.com/p/4522f4ee2350

~~帅~~
关注 关注
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue--》Vue3打造可扩展的项目管理系统后台的完整指南(一)
ztK63LrD的博客
05-23 1691
今天开始使用搭建一个项目管理的后台,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关注本专栏,学习更多前端vue知识,然后开篇先简单介绍一下本项目用到的技术栈都有哪几个方面(:快速轻量且功能丰富的前端构建工具,帮助开发人员更高效构建现代Web应用程序。:高性能、轻量级npm替代品,帮助开发人员更加高效地处理应用程序的依赖关系。
Vue--》Vue3打造可扩展的项目管理系统后台的完整指南(八)
ztK63LrD的博客
06-29 462
今天开始使用搭建一个项目管理的后台,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关注本专栏,学习更多前端vue知识,然后开篇先简单介绍一下本项目用到的技术栈都有哪几个方面(:快速轻量且功能丰富的前端构建工具,帮助开发人员更高效构建现代Web应用程序。:高性能、轻量级npm替代品,帮助开发人员更加高效地处理应用程序的依赖关系。
vue3 + vite 多项目多模块打包
百变魔旅
03-31 6748
本示例基于vite-plugin-html插件,实现多个独立项目共存,共享组件和依赖,运行、打包互不干扰。
【vite+vue3】一个项目包含多个小项目并实现多项目单独打包部署访问
q1ngqingsky的博客
04-06 5621
1. projectA项目和projectB项目中均要保留index.html、main.ts/js 、App.vue 这三个文件可以直接复制粘贴src下的index.html、main.ts/js 、App.vue文件内容,需要注意的是main.ts路径引入的变化,以及路由的路径引入正确与否。公司有两个项目,UI界面以及框架是一致的,且有很多个公用的组件可以共同使用。所以想着在一个大的项目里实现两个小项目:projectA和projectB项目,公共部分提取出来。3. 配置package.json。
Vue3安装配置、开发环境搭建(组件安装卸载)(图文详细)
现从事厨房信息化行业,望有机会合作
03-08 152
​这里的环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为npm install express [-g] 执行全局安装语句时,会将安装的模块安装到【C:\Users\用户名\AppData\Roaming\npm】路径目录下,久而久之C盘很容易被占满(C盘足够大可以无视此步骤),通过设置,将默认安装目录和缓存日志目录重新配置到其他盘符节约C盘空间。Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。
多个vue项目公共组件的三种方法
細水、長流√的专栏
11-04 4239
我们可以采取专人维护common包的方式,common的组件编写完成后,将其发布到npm。发布流程如下:在注http://www.npmjs.com册一个账号进入common的控制台,输入命令npm login,按照提示输入刚注册的账号密码输入命令 npm publish 即可当然common这个名字肯定被注册了,这里只做示例,真正使用时需使用一个未在npm中注册的包名。
Vue2项目总结-电商后台管理系统
Czc1357618897的博客
03-20 3313
电商后台管理系统知识性总结
vue 项目接口管理的实现
01-19
vue开发中,会涉及到很多接口的处理,当项目足够大时,就需要定义规范统一的接口,如何定义呢? 方法可能不只一种,本文使用axios+async/await进行接口的统一管理 本文使用vue-cli生成的项目举例 举例 拿...
vue项目实现多语言切换的思路
01-18
Web 项目多语言(i18n,即国际化)是比较常见的需求,常规的做法大概有以下几种: 每种语言单独开发页面,适用于 CMS 之类的网站 多语言文本和页面结构分离,运行...这个插件就是上面第二种方案,用 JSON 文件管理
配置一个vue3.0项目的完整步骤
11-28
我使用vue3新建项目,对于创建一个项目来说,vue3真的比vue2简单很多。 1.初始化项目 1.1全局安装vue-cli 创建vue项目,首先要确保全局安装了vue命令行工具。 我这边使用yarn而不用npm,因为yarn要比npm好用的多,...
基于Vue的JavaScript企业级研发项目管理系统设计源码
最新发布
04-06
项目是基于Vue框架开发的JavaScript企业级研发项目管理系统,包含2430个文件,主要文件类型包括Vue组件、JavaScript脚本、CSS样式表、HTML页面、PNG图片、SVG图形、JPG图片、GIF动画、SCSS样式表、Markdown文档和...
多套vue项目资源
03-02
多套vue项目资源,使用需要npm install,根据自己的需求进行修改开发
vue+ivew管理系统
07-16
vue+ivew管理系统vue+ivew管理系统vue+ivew管理系统vue+ivew管理系统vue+ivew管理系统
vue如何搭建多页面多系统应用
11-20
本文为大家分享了vue如何搭建多页面多系统应用,供大家参考,具体内容如下 一、多页面多系统应用 ...在做Vue项目的时候,需要用对多个类似系统做一个集成。想过很多种方法,比如:完全单页应用,分开独立应用,
一个域名多个vue项目
qq_42385482的博客
06-12 1939
在同一个域名下根据不同路径设置不同项目,主要是配置nginx,并与vue项目的路由模式有关。
本地如何安装运行多个vue.js项目
草巾冒小子的博客
04-26 3348
如何安装多个vue.js项目? 在研究vue.js框架的时候,往往会从网站上搜一些别人已经写好的vue项目,然后安装到本地,运行,查看浏览器的UI界面和功能效果。 本文着重讲解一下,如何安装已经下载好的模板文件,如何让它运行跑起来,以方便在客户浏览器端查看demo案例演示的效果! 具体步骤如下: 打包下载别人写好的vue.js项目; 解压下载的文件,...
vue-multi-module【多模块集成的vue项目,多项目共用一份配置,可以互相依赖,也可以独立打包部署】...
weixin_33958585的博客
05-08 5884
基于 vue-cli 2 实现,vue 多模块、vue项目集成工程 Github项目地址 : github.com/BothEyes199… 目标:多模块集成的vue项目,多项目共用一份配置,可以互相依赖,也可以独立打包部署 使用业务场景 1.如果项目可能有对应多个不同UI界面;对于这样的场景你可能首先会想到,用样式主题就可以实现,基本的样式或者换肤是可以通过样式实现。但如果要实现更复杂的,比如...
vue项目中遇到的问题
热门推荐
森泡泡的博客
06-28 1万+
一. 就目录而言 在项目的二级目录的config文件夹中,index.js文件中host为本地访问网络时的Ip地址,默认是localhost。 注意:在上传版本的时候,提前将host的值改为默认。(在pc端查看Ip地址的方法:window+R,输入cmd ,输入ipconfig)。 在项目的二级目录的static文件夹中: 可以存储js等一些公共文件, 引用其内部的文...
vue项目配置多个环境
05-28
好的,针对你的问题,我可以给你提供一些实用的方案。 在 Vue 项目中,通常会有多个环境,如开发环境、测试环境和生产环境等。为了方便管理和部署,我们可以通过配置多个环境来实现不同环境下的不同配置。 以下是一些实用的方案: 1. 使用环境变量 在 Vue 项目中,可以通过设置环境变量来实现不同环境下的不同配置。可以通过在 package.json 文件中设置 scripts 来指定不同的环境变量,例如: ``` "scripts": { "dev": "NODE_ENV=development vue-cli-service serve", "test": "NODE_ENV=testing vue-cli-service serve", "build": "NODE_ENV=production vue-cli-service build" }, ``` 然后在代码中使用 process.env.NODE_ENV 来获取当前环境变量,根据不同的环境变量来加载不同的配置文件。 2. 使用 .env 文件 可以在项目根目录下创建不同环境的 .env 文件,例如 .env.development、.env.testing 和 .env.production。在这些文件中可以设置不同的环境变量,例如: ``` # .env.development NODE_ENV=development VUE_APP_API_URL=http://localhost:8080/api # .env.testing NODE_ENV=testing VUE_APP_API_URL=http://test.example.com/api # .env.production NODE_ENV=production VUE_APP_API_URL=http://example.com/api ``` 在代码中使用 process.env.VUE_APP_API_URL 来获取当前环境的 API 地址,根据不同的环境变量来加载不同的配置文件。 3. 使用 .env 文件和 webpack 可以通过 webpack 的 DefinePlugin 插件来设置环境变量,例如: ``` // vue.config.js module.exports = { configureWebpack: { plugins: [ new webpack.DefinePlugin({ 'process.env': { NODE_ENV: JSON.stringify(process.env.NODE_ENV), VUE_APP_API_URL: JSON.stringify(process.env.VUE_APP_API_URL) } }) ] } } ``` 然后在 .env 文件中设置不同的环境变量,例如: ``` # .env.development NODE_ENV=development VUE_APP_API_URL=http://localhost:8080/api # .env.testing NODE_ENV=testing VUE_APP_API_URL=http://test.example.com/api # .env.production NODE_ENV=production VUE_APP_API_URL=http://example.com/api ``` 在代码中使用 process.env.VUE_APP_API_URL 来获取当前环境的 API 地址,根据不同的环境变量来加载不同的配置文件。 以上是三种常用的方案,你可以根据自己的需求选择适合的方案。希望能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • vue发送form-data数据格式请求 24551
  • vue中filter过滤器中的this指向 11451
  • 关于vue中引入less时的报错集 9054
  • vue中使用video插件vue-video-player 7747
  • 解决IE识别ES6语法 7514

最新评论

  • 解决iview table组件动态表头更新时的报错问题

    new-view-hairui: 这种直接重新渲染了,聪明,就是感觉可能会影响性能

  • vue启动编译时报错:134(内存溢出)

    erxiaoouba: 在vscode里修改完也还是默认的2G, cmd的到是改了, 结果还是不能运行

  • 关于uniapp中动态设置image的src不生效

    ~~帅~~: 父组件里面看注释文字

  • 关于uniapp中动态设置image的src不生效

    kill370354: 没有解决方式?

  • 关于vue多个项目的管理

    ~~帅~~: 按照步骤一步一步来...

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • vue启动编译时报错:134(内存溢出)
  • vue3中引入全局的less 和配置代理
  • 关于uniapp中动态设置image的src不生效
2023年1篇
2022年3篇
2021年4篇
2020年4篇
2019年16篇
2018年8篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源健康类起名下划线快捷键电视在线直播观看诗词起名北京菲亚特4s店全部演员表名单用乐起名给婴儿起名字公司姓佟的女孩起名博美犬起名给猫咪起英文名winkey独特的近义词山西联通网上营业厅惠州车管所给爸爸的一封信鼠年卞姓女孩起名gift是什么意思起名 单字农产品销售公司起名对合作社起名韩姓起那些名字好叶玄叶灵小说全文免费阅读无弹窗三兄弟起名浅浅一笑竟折妖起名字家字开头男孩起名笔划惶恐不安湖北教育台在线直播怀字起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化