我正在尝试找出在项目中在Atmosphere上分叉现有包的最佳/最干净的方法.我遇到过一些现有软件包需要进行一些修改的情况,我被迫分叉了.
据我所知,存在以下选项.不幸的是,所有这些都有自己的问题,我还没有找到完美的解决方案.我将以meteor-router
一个例子为例:
脚步:
packages/router/.git/
packages/.gitignore
并删除"路由器"行smart.json
packages/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
/ .zshrc
file
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 次 |
最近记录: |