我正在尝试找出在项目中在Atmosphere上分叉现有包的最佳/最干净的方法.我遇到过一些现有软件包需要进行一些修改的情况,我被迫分叉了.
据我所知,存在以下选项.不幸的是,所有这些都有自己的问题,我还没有找到完美的解决方案.我将以meteor-router一个例子为例:
脚步:
packages/router/.git/packages/.gitignore并删除"路由器"行smart.jsonpackages/router到项目存储库并提交好处:
缺点:
除了最简单的包装之外,甚至不要考虑这个!
要在github上分叉包,您可以检查您的smart.lock文件以查看正在使用的存储库.转到该存储库的github页面并进行分叉.
接下来,您有三个选择:
有关git子模块的更多信息:http://git-scm.com/book/en/Git-Tools-Submodules
脚步:
smart.json好处:
缺点:
git submodule init第一次运行并update进行更新smart.json以使用您的版本脚步:
smart.json,找到"router": {}并添加"git": "https://github.com/USER/meteor-router.git"内部空{}."branch"或"tag".好处:
缺点:
(建议的陨石改进:允许以可编辑的形式安装包,比如Python的pip允许使用'-e'参数)
"path"到smart.json脚步:
"path"到您smart.json的指向陨石到您当地的结帐好处:
缺点:
smart.json,您很可能会破坏所有其他开发/部署环境......你用哪种方法?你如何解决该方法的缺点?
我可能错过了这些解决方案的一些问题.
HaN*_*riX 10
对于Meteor 1.0,我推荐以下内容:
设置本地包文件夹
$ mkdir "$HOME/code/packages"
Run Code Online (Sandbox Code Playgroud)将PACKAGE_DIRS环境变量添加到.bashrc/ .zshrcfile
export PACKAGE_DIRS="$HOME/code/packages"
Run Code Online (Sandbox Code Playgroud)分叉并克隆存储库
$ cd "$HOME/code/packages"
$ git clone <yourGithubFork>
Run Code Online (Sandbox Code Playgroud)从文件系统安装包
$ meteor add <packagenamespace>:<packagename>
Run Code Online (Sandbox Code Playgroud)有一个比上述所有更容易的答案.在项目中创建一个名为packages的目录,并将要覆盖的包放入其中.简单!
例如:假设你想进行一些更改帐户-UI-无样式(这是一个子依赖的账户-UI)的流星.将整个流星源的git克隆到本地存储库:
MyMachine:~ theuser$ cd Development/
MyMachine:Development theuser$ git clone https://github.com/meteor/meteor.git
MyMachine:Development theuser$ cp accounts-ui-unstyled ~/Development/MyProject/packages
Run Code Online (Sandbox Code Playgroud)
在您的项目结构中,您将拥有此功能
MyProject
|
-> client
-> lib
-> packages
|
-> accounts-ui-unstyled
-> private
-> public
-> server
-> tests
Run Code Online (Sandbox Code Playgroud)
您在MyProject/packages/accounts-ui-unstyled中所做的任何更改现在都将覆盖该包.
2b. 编辑项目的 smart.json 以使用您的版本
smart.json我会推荐这个版本,因为它与预期的使用和支持方式最一致。mrt update将正确反映我认为的最新情况git repo。
| 归档时间: |
|
| 查看次数: |
2605 次 |
| 最近记录: |