如何直接从GitHub安装npm包?
试图从github安装模块会导致:
package.json上的ENOENT错误。
轻松使用快递转载:
npm install https://github.com/visionmedia/express
抛出错误。
npm install express
作品。
为什么我不能从github安装?
这里是控制台输出:
npm http GET https://github.com/visionmedia/express.git npm http 200 https://github.com/visionmedia/express.git npm ERR! not a package /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/tmp.tgz npm ERR! Error: ENOENT, open '/home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json' npm ERR! If you need help, you may report this log at: npm ERR! <http://github.com/isaacs/npm/issues> npm ERR! or email it to: npm ERR! <npm-@googlegroups.com> npm ERR! System Linux 3.8.0-23-generic npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "https://github.com/visionmedia/express.git" npm ERR! cwd /home/guym/dev_env/projects_GIT/proj/somename npm ERR! node -v v0.10.10 npm ERR! npm -v 1.2.25 npm ERR! path /home/guym/tmp/npm-32312/1373176518024-0.6586997057311237/package/package.json npm ERR! code ENOENT npm ERR! errno 34 npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /home/guym/dev_env/projects_GIT/proj/somename/npm-debug.log npm ERR! not ok code 0
因为https://github.com/visionmedia/express
是网页的URL而不是npm模块。 使用这个味道:
git+https://git@github.com/visionmedia/express.git
或者这个味道,如果你需要SSH:
git+ssh://git@github.com/visionmedia/express.git
你也可以做npm install visionmedia/express
要么
npm install visionmedia/express#branch
还支持直接从gist,bitbucket,gitlab和其他一些专门的格式进行安装。 看看他们所有的npm install
文档 。
如果没有安装git,那么我们可以试试npm install --save https://github.com/Amitesh/gulp-rev-all/tarball/master
。
还有npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}
来使用不同的分支。
彼得里昂目前的最佳答案与最近的NPM版本无关。 例如,使用在这个答案中被批评的命令现在好了。
$ npm install https://github.com/visionmedia/express
如果问题继续存在,则可能是您使用的任何软件包有问题。
更新九月2016年
从香草https githuburl安装现在似乎工作:
npm install https://github.com/fergiemcdowall/search-index.git
编辑:有几个用户评论说,你不能这样做的所有模块,因为你正在从一个源代码pipe理系统,这可能包含无效/未编译/错误的代码阅读。 所以要清楚(尽pipe它应该不言而喻): 鉴于repo中的代码是在一个npm可用的状态 ,你现在可以很高兴地直接从github安装
直接安装:
npm install visionmedia/express
或者,您可以在package.json
文件的"dependencies"
部分添加"express": "github:visionmedia/express"
,然后运行:
npm install
你也可以做
npm i alex-cory/fasthacks
要么
npm i github:alex-cory/fasthacks
基本上:
npm i user_or_org/repo_name
更新现在你可以这样做: npm install git://github.com/foo/bar.git
或者在package.json
:
"dependencies": { "bar": "git://github.com/foo/bar.git" }
这些方法在npm的安装文档中以及许多其他的答案都覆盖得很好。
npm install git+ssh://git@github.com:<githubname>/<githubrepo.git[#<commit-ish>] npm install git+ssh://git@github.com:<githubname>/<githubrepo.git>[#semver:^xx] npm install git+https://git@github.com/<githubname>/<githubrepo.git> npm install git://github.com/<githubname>/<githubrepo.git> npm install github:<githubname>/<githubrepo>[#<commit-ish>]
然而,最近发生了一些变化的是npm添加prepare
脚本来replaceprepublish
脚本。 这解决了一个长期存在的问题,通过git安装的模块没有运行prepublish
脚本,因此没有完成将模块发布到npmregistry时发生的构build步骤。 请参阅https://github.com/npm/npm/issues/3055 。
当然,模块作者需要更新他们的package.json来使用新的prepare
指令来开始工作。
您可以通过npm install
命令直接安装github repo,如下所示: npm install https://github.com/futurechallenger/npm_git_install.git --save
注意:在将由npm命令安装的repo中:
- 根据@Dan Dascalescu的评论,也许你必须在你的回购中有一个dist文件夹。
- 你必须有一个package.json在你回购! 我忘了添加。
语法的一般forms是
<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]
这意味着你的情况将是
npm install git+ssh://git@github.com/visionmedia/express.git
从npmjs文档:
npm安装:
从托pipe的git提供程序中安装包,用git克隆它。 对于完整的git远程URL,只会尝试使用该URL。
<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish>
| #semver:]是git,git + ssh,git + http,git + https或者git +文件之一。
如果提供了#,它将被用来克隆那个提交。 如果commit-ish的格式为#semver :,可以是任何有效的semver范围或精确的版本,npm将查找远程存储库中与该范围匹配的任何标签或引用,就像registry依赖关系一样。 如果既不#
semver:被指定,然后使用master。
如果存储库使用子模块,那么这些子模块也将被克隆。
如果正在安装的软件包包含一个准备脚本,则将安装它的依赖关系和devDependencies,并在打包和安装该软件包之前运行准备脚本。
以下git环境variables可以被npm识别,并且在运行git时会被添加到环境中:
- GIT_ASKPASS
- GIT_EXEC_PATH
- GIT_PROXY_COMMAND
- GIT_SSH
- GIT_SSH_COMMAND
- GIT_SSL_CAINFO GIT_SSL_NO_VERIFY
有关详细信息,请参阅git手册页。
例子:
npm install git+ssh://git@github.com:npm/npm.git#v1.0.27 npm install git+ssh://git@github.com:npm/npm#semver:^5.0 npm install git+https://isaacs@github.com/npm/npm.git npm install git://github.com/npm/npm.git#v1.0.27 GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install git+ssh://git@github.com:npm/npm.git npm install
试试这个命令
npm install github:[Organisation]/[Repository]#[master/BranchName] -g
这个命令为我工作。
npm install github:BlessCSS/bless#3.x -g