npm从github pull请求安装

sfl*_*che 45 github npm

npm安装文档中调用它看起来可以从github repo安装npm.

是否也可以专门从pull请求安装?

解决方案是基于拉取请求的最后一次提交(最后一次)来安装吗?

Tad*_*spy 62

GitHub正在为原始仓库中的每个PR 维护一个名称空间,所以这也适用:

npm install <user>/<repo>#pull/<id>/head
Run Code Online (Sandbox Code Playgroud)

注意:它看起来不适用于NPM v.5.请参阅下面的注释.

例如:

npm i --save-dev json-schema-faker/json-schema-faker#pull/129/head
Run Code Online (Sandbox Code Playgroud)

或用纱线:

yarn add <user>/<repo>#<id>/head
Run Code Online (Sandbox Code Playgroud)

例如:

yarn add json-schema-faker/json-schema-faker#129/head
Run Code Online (Sandbox Code Playgroud)

请注意,在Yarn情况下pull/,包标识符中没有段.

如果您需要自动执行安装或从PR发起的位置进行repo/branch,这可能会有所帮助.另请参阅在GitHub上本地修改非活动拉取请求.

  • 我得到的消息是'pull/242/head'与git已知的任何文件都不匹配 (3认同)
  • @Munchkin我认为你不会对NPM本身做些什么.也许fork存储库,合并你的fork中的PR并从那里安装? (2认同)
  • 纱线(或Github?)似乎不支持拉标签.所以对于上面的例子,它将是:json-schema-faker/json-schema-faker#129/head.对于某些PR,还有一个"合并"(而不是"头部")后缀,但我不知道这意味着什么. (2认同)

Von*_*onC 22

" 如何直接从GitHub安装NodeJS包? "提到你可以指定一个分支.

因此,如果您知道PR来自的回购和分支,您可以执行以下操作:

npm install git+https://github.com/user/repo.git#branch 
Run Code Online (Sandbox Code Playgroud)

值得一提的是,你可能需要逃避#使用shell中的特定分支,即:

npm install git+https://github.com/user/repo.git\#branch 
Run Code Online (Sandbox Code Playgroud)

请注意,您要安装的存储库必须是npm模块,它必须包含package.json文件,否则您将收到此错误:

Error: ENOENT, open 'tmp.tgz-unpack/package.json'. 
Run Code Online (Sandbox Code Playgroud)