多个前端小项目,怎么让基础代码复用啊,每一个项目都是通过 vue-cli 脚手架生成的

2020-08-12 09:11:19 +08:00
 darknoll

公司原项目都是 C++做的,现在打算把其中的一些功能分拆成一个个独立的 web 应用,领导要求这些应用可以单独部署或者选择其中几个部署。

4644 次点击
所在节点    程序员
25 条回复
ByZHkc3
2020-08-12 09:12:31 +08:00
组件库啊
doommm
2020-08-12 09:17:17 +08:00
基础代码指是什么代码?是基础组件还是项目模板?
fengxianqi
2020-08-12 09:17:20 +08:00
把公共的抽到一处,发布到 npm 私服,每个独立应用安装这个依赖就可以了吧。
darknoll
2020-08-12 09:21:55 +08:00
@doommm 就是几个项目中都用到的 vue 组件啊,函数啊啥的
VDimos
2020-08-12 09:23:59 +08:00
git clone,简单粗暴
clf
2020-08-12 09:26:07 +08:00
不知道我理解的对不对:现在有 N 个单页面项目,然后需求是可以选择 1 个或多个部署。基础代码指的是这些单页面项目。

一个简单的方案:
1.把所有的页面都合并到一个项目里
2.写一个类似导航的页面,当需要部署多个的时候启用导航页作为首页,如果只部署一个,那么那个页面的入口 Vue 文件就是首页。
3.采用前端路由控制页面的可见性,用到的页面配置到路由里,没用到的就不配置。
darknoll
2020-08-12 09:28:32 +08:00
@lychs1998 每个项目的域名都不一样,没法做到一个项目里啊
Mindjet
2020-08-12 09:28:57 +08:00
建议阅读 JavaScript Web 应用开发(Nicolas_Bevacqua),适合你的需求,前言部分摘录如下:

**《 JavaScript Web 应用开发》这本书会告诉你如何在前端开发中使用自动化技术,涵盖你所需要知道的一切,比如说如何避免重复的任务,如何使用简洁的工具监控生产版本,减少人为错误造成的损失。**

...

**模块化至关重要,能协助我们构建可伸缩且可维护的应用。模块化不仅能确保应用的各个部分都能轻易地加以测试,容易编写文档,而且还能鼓励我们重用代码,并把精力集中在提高代码质量上。**

在这本书中,Nico 熟练地示范了如何编写**模块化**的 JavaScript 组件,如何正确处理异步流,还介绍了足够你用来构建应用的客户端 MVC 知识。
Mindjet
2020-08-12 09:30:39 +08:00
JavaScript 的面向对象和模块化和 C++/Java/C#等等语言差别很大,需要用心学习。
JavaScript 入门容易,精通就没那么容易了。
wenzichel
2020-08-12 09:36:31 +08:00
抽离出来,发布成 Npm 包,每个项目可以单独引用。如果稍微大点的,可以单独发布;几个代码都比较小,可以合到一起,https://github.com/wenzi0github/utils 例如这个里面,有很多小的实用的片段。
sixway
2020-08-12 09:39:03 +08:00
函数工具库可以参考 lodash 的实现,至于可以复用的组件可以单独模块化,其他的项目直接引用即可。
otakustay
2020-08-12 09:58:27 +08:00
monorepo 万能论:都放一起
azcvcza
2020-08-12 10:04:54 +08:00
搞一个 base_modules 单独维护组件库,每个项目依赖同一个 base _modules
DL9412
2020-08-12 10:22:39 +08:00
听起来类似微前端架构?之前看过一点,没实践过。可以看下 https://github.com/phodal/microfrontends
maguowei
2020-08-12 10:28:28 +08:00
yunkou
2020-08-12 10:48:08 +08:00
发布到 npm 私服 如果没有什么安全问题的话,直接发 npm
no1xsyzy
2020-08-12 10:51:55 +08:00
git submodule (
vue-cli 我记得可以指定模板从哪个 git repo 取的吧…… 记错勿怪
BaiLinfeng
2020-08-12 11:04:24 +08:00
@wenzichel 这是什么啊要咋使用
KuroNekoFan
2020-08-12 11:13:52 +08:00
monorepo
Sapp
2020-08-12 11:35:01 +08:00
你连 npm 都不用上传,抽成一个合集直接 git 地址引用就可以了,比如:npm i -D git+xxx 。当然你也可以尝试在一个脚手架里搞多个项目,这样抽都不用抽了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/697564

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX