我是一名为客户制作网站的自由职业者.我有自己的基于React和Node的devstack.目前,当我开发一个新站点时,我只是复制我编写的最后一个项目并修改路由,页面等.当我添加一些新功能(更新webpack 1到2等等)时,我必须在每个项目中手动完成(或者我根本不做).
我想对此采取更专业的方法.你能向我推荐一些材料或态度吗?
我目前的目标是:使用我的devstack(框架)拥有一个repo(私有github并在验证后公开).每次我开始一个新项目时,我都会将它分叉(以便它保持为上游原点)并开始开发.每当我改变一些核心功能或添加我想要在其他项目中的东西时,我想以某种方式将其推送到devstack repo.我也可以手动将此代码复制到devstack,但我不想写两次,所以更好的方法会有所帮助.
我怎么能这样做,我的想法好吗?基本上,一些建议,如果它完全有意义,一些文章的链接将帮助我.谢谢.
Von*_*onC 12
"每当我改变一些核心功能或添加我想在其他项目中拥有的东西时,我想以某种方式将其推送到
devstack回购."
推送devstack回购(你为所有项目分配的原始回购)是一个很好的第一步,但它不会神奇地将这个新功能"传播"到你的所有其他回购.
但是,您可以利用三角工作流程:
devstack(这就是您已经为项目做的事情)为给定项目克隆本地fork,
git clone /url/my/fork myfork
Run Code Online (Sandbox Code Playgroud)添加upstream原始仓库作为远程
cd myfork
git remote add upstream /url/to/devstack
Run Code Online (Sandbox Code Playgroud)从那里,使用git 2.9或更多,配置:
git config --global pull.rebase true
git config --global rebase.autoStash true
Run Code Online (Sandbox Code Playgroud)
最后,每次您想要更新您的一个仓库以从推送到的功能中受益devstack:
cd /path/to/one/of/mine/projects
git checkout mybranch
git fetch upstream
git rebase upstream/master
Run Code Online (Sandbox Code Playgroud)
有多种方法,它们都取决于您的脚手架代码有多少被重用,修改或丢弃.
如果您的代码非常通用并且允许自定义而无需触及脚手架代码,那么我真的会推荐最后一个策略.
你可以使用像自耕农这样的发电机.您可以为yeoman创建自己的模板并维护模板.这样,每次创建新网站时,您唯一需要做的就是yo使用模板调用,在必要时为其提供一些选项,让事情顺利进行.
当使用上游VonC一次更新所有项目时,已经给出了一个很好的分叉方法.
如果你想完全避免分叉,你可以模块化你的脚手架,你可以使用git子模块.
使用git子模块,您可以将"框架"代码与客户端代码分开.有多种策略.
这在很大程度上取决于您的设置,但一种策略是为每个具有预定义结构的客户端创建存储库,并将您的脚手架添加为子模块.
看看有关子模块和子存储库的这个问题.
最后,如果您的脚手架非常通用,则无法阻止您创建一个模块,该模块将使用所需的文件和选项填充您的项目.
在您的项目中,package.json dependencies您可以添加:
"my-scaffold": "git+ssh://git@gitlab.com:user/repo.git#ref"
Run Code Online (Sandbox Code Playgroud)
然后在您的脚手架中,package.json您可以在安装时运行部署脚本:
"scripts": {
"install" : "node tools/deploy.js"
}
Run Code Online (Sandbox Code Playgroud)
每次构建项目时,都可以检查当前部署的版本与node_modules中安装的版本,然后重新运行部署脚本以更新项目中所需的脚本.
干杯!
| 归档时间: |
|
| 查看次数: |
305 次 |
| 最近记录: |