NPM 打包分叉 Git 存储库的 BUILT 版本的正确方法是啥?
Posted
技术标签:
【中文标题】NPM 打包分叉 Git 存储库的 BUILT 版本的正确方法是啥?【英文标题】: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
。
我的问题是:打包存储库的分叉构建版本以便我可以将其用作依赖项的正确方法是什么?据我所知,我有以下选择:
-
在本地构建存储库,使用构建的文件创建一个
.tgz
文件,然后将其托管在某处并将我的 package.json 指向该文件。
在本地构建存储库,更改 .gitignore
以允许 adapter.js
,然后推送到 Github 上的一个分支并将该分支用作我的依赖项。
其中任何一个都可以,但我觉得我错过了一些东西。 npm 有分叉包的概念吗?不是每个 git 存储库都可以在没有某种 build/dist 步骤的情况下用作依赖项,那么做这种事情的公认方法是什么?
【问题讨论】:
【参考方案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。
【讨论】:
以上是关于NPM 打包分叉 Git 存储库的 BUILT 版本的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章