尝试从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
答案 0 :(得分:980)
因为https://github.com/visionmedia/express
是网页的URL而不是npm模块。使用这种味道:
git+https://git@github.com/visionmedia/express.git
如果您需要SSH,请使用或这种风格:
git+ssh://git@github.com/visionmedia/express.git
答案 1 :(得分:583)
您也可以从Github安装npm install visionmedia/express
或
npm install visionmedia/express#branch
还支持直接从Gist,Bitbucket,Gitlab和许多其他专用格式进行安装。全部查看npm install
documentation。
答案 2 :(得分:128)
如果没有安装git,我们可以尝试
npm install --save https://github.com/Amitesh/gulp-rev-all/tarball/master
答案 3 :(得分:47)
还有npm install https://github.com/{USER}/{REPO}/tarball/{BRANCH}
使用不同的分支。
答案 4 :(得分:41)
2016年9月更新
现在可以使用vanilla https github URL进行安装:
npm install https://github.com/fergiemcdowall/search-index.git
编辑:有几位用户评论说您无法为所有模块执行此操作,因为您正在从源控制系统中读取,这可能包含无效/未编译/错误码。所以要清楚(尽管不言而喻):鉴于repo中的代码处于npm可用状态,您现在可以直接从github安装
答案 5 :(得分:34)
Peter Lyons目前的最佳答案与最近的NPM版本无关。例如,使用在这个答案中被批评的相同命令现在很好。
$ npm install https://github.com/visionmedia/express
如果您遇到问题,那么无论您使用什么包装都可能存在问题。
答案 6 :(得分:22)
这些方法现在在npm's install documentation以及其他许多答案中都有很好的涵盖。
npm install git+ssh://git@github.com:<githubname>/<githubrepo.git[#<commit-ish>]
npm install git+ssh://git@github.com:<githubname>/<githubrepo.git>[#semver:^x.x]
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
脚本来替换prepublish
脚本。这解决了一个长期存在的问题,即通过git安装的模块没有运行prepublish
脚本,因此没有完成将模块发布到npm注册表时发生的构建步骤。请参阅https://github.com/npm/npm/issues/3055。
当然,模块作者需要更新他们的package.json以使用新的prepare
指令开始工作。
答案 7 :(得分:16)
更新现在您可以:npm install git://github.com/foo/bar.git
或在package.json
:
"dependencies": {
"bar": "git://github.com/foo/bar.git"
}
答案 8 :(得分:16)
语法的一般形式是
<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]
这意味着你的情况将是
npm install git+ssh://git@github.com/visionmedia/express.git
来自npmjs docs:
npm install:
从托管的git提供程序安装软件包,并使用它进行克隆 饭桶。对于完整的git远程URL,只会尝试该URL。
<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish>
| #semver:]是git,git + ssh,git + http之一, git + https,或git + file。
如果提供了#,它将用于克隆那个 承诺。如果commit-ish的格式为#semver:, 可以是任何有效的semver范围或精确版本,npm将寻找 远程存储库中与该范围匹配的任何标记或引用,就像 这将是一个注册表依赖。如果不是#或
semver:已指定,然后使用master。
如果存储库使用子模块,那么这些子模块将是 克隆了。
如果正在安装的软件包包含一个prepare脚本,那么 将安装依赖项和devDependencies,并进行准备 在打包和安装软件包之前,将运行脚本。
以下git环境变量由npm和will识别 运行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
答案 9 :(得分:14)
直接安装:
reinterpret_cast
或者,您可以将template <typename T> operator T&()
添加到npm install visionmedia/express
文件的"express": "github:visionmedia/express"
部分,然后运行:
"dependencies"
答案 10 :(得分:9)
您也可以
npm i alex-cory/fasthacks
或
npm i github:alex-cory/fasthacks
基本上:
npm i user_or_org/repo_name
答案 11 :(得分:5)
您可以通过npm install
命令直接安装github repo,如下所示:
npm install https://github.com/futurechallenger/npm_git_install.git --save
注意:在将由npm命令安装的仓库中:
答案 12 :(得分:3)
简单:
npm install *GithubUrl*.git --save
示例:
npm install https://github.com/visionmedia/express.git --save
答案 13 :(得分:0)
如果你得到这样的东西:
<块引用>npm 错误! enoent 未定义 ls-remote -h -t https://github.com/some_repo/repo.git
确保您更新到最新的 npm 并且您也有权限。
答案 14 :(得分:-1)
我尝试了npm install git+https://github.com/visionmedia/express
,但是花了太长时间,我不确定是否可以。
对我有用的是-yarn add git+https://github.com/visionmedia/express
。
答案 15 :(得分:-3)
尝试此命令
npm install github:[Organisation]/[Repository]#[master/BranchName] -g
这个命令对我有用。
npm install github:BlessCSS/bless#3.x -g