【问题标题】:What is the correct way with NPM to package a BUILT version of a forked Git repository?NPM 打包分叉 Git 存储库的 BUILT 版本的正确方法是什么?
【发布时间】:2016-07-09 14:12:44
【问题描述】:

我最近创建了一个 GitHub 存储库来解决一个问题,并创建了一个拉取请求。在等待拉取请求被接受时,我已将本地 package.json 指向我的分叉存储库,如下所示:

devDependencies: {
    "karma-mocha": "maloric/karma-mocha"
}

但事实证明,karma-mocha 需要执行构建步骤来生成 lib/adapter.js - 包的重要组成部分。该文件在.gitignore 中列出,因此在存储库中不存在。 build 步骤是一个 grunt 任务,通常在包发布到 npm 时执行,所以下载的 npm 模块中存在adapter.js

我的问题是:打包存储库的分叉构建版本以便我可以将其用作依赖项的正确方法是什么?据我所知,我有以下选择:

  1. 在本地构建存储库,使用构建的文件创建一个 .tgz 文件,然后将其托管在某处并将我的 package.json 指向该文件。
  2. 在本地构建存储库,更改 .gitignore 以允许 adapter.js,然后推送到 Github 上的一个分支并将该分支用作我的依赖项。

其中任何一个都可以,但我觉得我错过了一些东西。 npm 有分叉包的概念吗?不是每个 git 存储库都可以在没有某种 build/dist 步骤的情况下用作依赖项,那么做这种事情的公认方法是什么?

【问题讨论】:

    标签: git github npm package.json git-fork


    【解决方案1】:

    这似乎类似于karma-runner/karma-jasmine issue 38,不完全相同的库,但相同的想法,以及adapter.js的问题:

    正如您正确指出的那样,grunt build 生成的adapter.js
    当我们运行 grunt release 时,adpater.js 仅放置在 npm 存储库中。

    如果您想使用您的karma-jasmine 版本,那么您可以从.gitignore 中删除lib/adapter.js

    所以选项 2。

    【讨论】:

      猜你喜欢
      • 2011-11-18
      • 2013-02-28
      • 1970-01-01
      • 2014-06-24
      • 2020-06-20
      相关资源
      最近更新 更多