gpt4 book ai didi

meteor - 如何以干净的方式 fork 现有的 Meteorite 包?

转载 作者:行者123 更新时间:2023-12-03 12:51:31 25 4
gpt4 key购买 nike

我试图找出最好/最干净的方法来在项目中的 Atmosphere 上 fork 现有包。我遇到过一些情况,现有的包需要一些修改,我被迫 fork 它。

据我所知,存在以下选项。不幸的是,所有这些都有自己的问题,我还没有找到完美的解决方案。我将使用 meteor-router举个例子:

1. 只需将包文件复制到您的包文件夹中

脚步:

  • 删除 packages/router/.git/
  • 编辑 packages/.gitignore并删除“路由器”行
  • 从您的smart.json 中删除路由器
  • 添加 packages/router到您的项目存储库并提交
  • 现在进行更改(这样您的初始提交是一个干净的版本,您可以自己计算出您所做的更改)

  • 好处:
  • 易于实现和理解
  • 您依赖的所有代码都可以在您的项目存储库中找到

  • 缺点:
  • 您丢失了所有原始存储库历史
  • 很难更新到新版本
  • 很难将您的更改贡献回原始项目

  • 除了最简单的软件包外,甚至不要考虑这个!

    2.在github上fork,然后...

    要在 github 上 fork 一个包,你可以查看你的 smart.lock文件以查看正在使用的存储库。转到该存储库的 github 页面并将其 fork 。

    接下来,您有三个选择:

    2a。将其添加为 git 子模块

    更多关于 git 子模块的信息: http://git-scm.com/book/en/Git-Tools-Submodules

    脚步:
  • 有关如何初始化/创建/更新子模块
  • 的信息,请参见上面的链接
  • 从您的smart.json 中取出包裹

  • 好处:
  • 子模块版本已连接到您的项目
  • 更改立即生效

  • 缺点:
  • 所有开发人员都需要运行git submodule init第一次和update更新
  • 编辑结帐时必须注意子模块的问题
  • 阅读有关子模块的其他问题

  • 2b。编辑项目的 smart.json使用你的版本

    脚步:
  • 在您的 smart.json , 查找 "router": {}并添加 "git": "https://github.com/USER/meteor-router.git"里面是空的{} .
  • (可选)添加 "branch""tag" .

  • 好处:
  • 您仍然可以使用 Meteorite 管理您的外部软件包
  • 将自动为其他开发人员和部署环境工作

  • 缺点:
  • 您的包文件夹中的代码不可编辑,因为它不是 git 存储库
  • Meteorite 不会在您每次运行时自动更新到最新版本

  • (建议的 Meteorite 改进:允许以可编辑的形式安装包,例如 Python 的 pip 允许使用 '-e' 参数)

    2c。在您的项目之外克隆并添加 "path"smart.json
    脚步:
  • 将包克隆到项目之外的位置
  • 与2b类似,添加"path"给您的smart.json将 Meteorite 指向您本地的结帐处

  • 好处:
  • 您可以随意编辑包,Meteor 会自动获取更改。

  • 缺点:
  • 如果您提交此 smart.json ,您很可能会破坏所有其他开发/部署环境...


  • 您使用哪种方法?您如何解决该方法的缺点?

    我可能错过了这些解决方案的一些问题。

    最佳答案

    对于 Meteor 1.0,我建议如下:

  • 设置本地包文件夹
    $ mkdir "$HOME/code/packages"
  • 添加 PACKAGE_DIRS环境变量到您的.bashrc/.zshrc文件
    export PACKAGE_DIRS="$HOME/code/packages"
  • fork 并克隆存储库
    $ cd "$HOME/code/packages"
    $ git clone <yourGithubFork>
  • 从你的文件系统安装包
    $ meteor add <packagenamespace>:<packagename>
  • 关于meteor - 如何以干净的方式 fork 现有的 Meteorite 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18096390/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com