使用NPM正确地打包一个fork的Git仓库的已构建版本的方法是什么?

19

我最近复刻了一个GitHub仓库来修复一个问题,并创建了一个拉取请求。当我等待拉取请求被接受时,我把我的本地package.json指向了我的复刻仓库,像这样:

devDependencies: {
    "karma-mocha": "maloric/karma-mocha"
}
然而,事实证明,karma-mocha需要执行构建步骤来生成lib/adapter.js - 这是包的重要组成部分。该文件在.gitignore中列出,因此不存在于存储库中。构建步骤是一个grunt任务,通常在将包发布到npm时执行,因此adapter.js存在于下载的npm模块中。
我的问题是:以正确的方式打包分叉的构建版本的存储库,以便我可以将其用作依赖项?据我所知,我有以下选项:
  1. 在本地构建存储库,使用已构建的文件创建.tgz文件,然后托管到某个地方,并将package.json指向该文件。
  2. 在本地构建存储库,更改.gitignore以允许adapter.js,然后推送到Github上的一个分支,并将该分支用作我的依赖项。
这两种方法都可以工作,但我觉得我还缺少了什么。npm是否有分叉包的概念?并非每个git存储库都可以在没有某种构建/dist步骤的情况下用作依赖项,因此做这种事情的接受方式是什么?
1个回答

8
那似乎类似于{{link1:karma-runner / karma-jasmine问题38}},不是完全相同的库,但是相同的想法,并且有适配器.js的问题:
引用: 正如您正确指出的那样,由grunt build生成了适配器.js。 当我们运行grunt release时,adpater.js仅放置在npm存储库中。 如果要使用您自己的karma-jasmine版本,则可以从.gitignore中删除lib / adapter.js。
所以选择第2个选项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接