首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >制作我自己的框架并将其用作项目的上游

制作我自己的框架并将其用作项目的上游
EN

Stack Overflow用户
提问于 2016-12-29 11:56:03
回答 1查看 333关注 0票数 20

我是一个为客户制作网站的自由职业者。我有自己的基于React和Node的devstack。目前,当我开发一个新网站时,我只是复制我编写的最后一个项目,并修改路由、页面等。当我添加一些新功能(将webpack更新为1到2等等)时,我必须在每个项目中手动完成(或者根本不做)。

我希望有一种更专业的方法来解决这个问题。你能给我推荐一些关于它的材料或态度吗?

我目前的目标是:在我的devstack (框架)中创建一个repo (私有github,并在验证后将其公开)。每次我开始一个新项目时,我都会分叉它(这样它就会保持上游的原点)并开始开发。每次我更改一些核心功能或者添加一些我想要在其他项目中使用的东西时,我都想以某种方式将其推送到devstack代码库中。我也可以手动将此代码复制到devstack,但我不想编写两次,因此一种更好的方法会有所帮助。

我该怎么做,我的想法好吗?基本上,一些建议,如果它是有意义的,一些链接到一篇文章将对我有足够的帮助。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-10 06:08:36

有多种方法可以做到这一点,它们都取决于有多少脚手架代码被重用、修改或丢弃。

如果您的代码非常通用,并且允许在不接触脚手架代码的情况下进行自定义,那么我在这里真的推荐最后一种策略。

您可以使用像yeoman这样的生成器。您可以为yeoman创建自己的模板并维护该模板。这样,每次你创建一个新站点,你唯一要做的就是用你的模板调用yo,如果需要的话,提供一些选项给它,然后你就可以开始工作了。

当涉及到使用上游VonC has given一次性更新所有项目时,这是一个使用forking的好方法。

如果你想完全避免分支,并且你可以模块化你的脚手架,你可以使用git submodules

使用git子模块,你可以将你的“框架”代码从你的客户端代码中分离出来。有多种策略。

这在很大程度上取决于您的设置,但一种策略是为每个客户端创建一个具有预定义结构的存储库,并将scaffold作为子模块添加。

看一下关于子模块和子存储库的this question

最后,如果您的scaffold非常通用,那么没有什么可以阻止您创建一个模块,该模块将使用所需的文件和选项填充您的项目。

在项目的package.json dependencies中,您可以添加:

代码语言:javascript
复制
"my-scaffold": "git+ssh://git@gitlab.com:user/repo.git#ref"

然后,在您的scaffold的package.json中,您可以在安装时运行deployment script

代码语言:javascript
复制
"scripts": {
  "install" : "node tools/deploy.js"
}

每次构建项目时,您都可以检查当前部署的版本与安装在node_modules中的版本,并重新运行部署脚本以更新项目中需要的脚本。

干杯!

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41372921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档