尝试从GitHub安装模块会导致以下错误:

package.json上的ENOENT错误。

容易复制使用express:

NPM安装https://github.com/visionmedia/express抛出错误。

NPM安装快速工程。

为什么我不能从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

当前回答

下面的一段代码为我安装从github存储库:

npm install git+ssh://<your_repository_ssh_clone_link>#<branch_name_if_any>

你可以得到ssh克隆链接如下:

所以对于上面的截图存储库,你可能需要像下面这样导入,

npm install git+ssh://git@github.com:Siddhu2/calculator-chatbot.git#master

master是我的分支,这是可选的,因为我只有一个分支。

其他回答

唯一对我有用的命令是npm i MY_PACKAGE_NAME:MY_REPOSITORY#BRANCH_NAME

语法的一般形式是

<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:<semver>]

也就是说你的案子会是这样吗

npm install git+ssh://git@github.com/visionmedia/express.git

来自npmjs文档:

npm install : Installs the package from the hosted git provider, cloning it with git. For a full git remote url, only that URL will be attempted. <protocol>://[<user>[:<password>]@]<hostname>[:<port>][:][/]<path>[#<commit-ish> | #semver:] is one of git, git+ssh, git+http, git+https, or git+file. If # is provided, it will be used to clone exactly that commit. If the commit-ish has the format #semver:, can be any valid semver range or exact version, and npm will look for any tags or refs matching that range in the remote repository, much as it would for a registry dependency. If neither # or semver: is specified, then master is used. If the repository makes use of submodules, those submodules will be cloned as well. If the package being installed contains a prepare script, its dependencies and devDependencies will be installed, and the prepare script will be run, before the package is packaged and installed. The following git environment variables are recognized by npm and will be added to the environment when running git: GIT_ASKPASS GIT_EXEC_PATH GIT_PROXY_COMMAND GIT_SSH GIT_SSH_COMMAND GIT_SSL_CAINFO GIT_SSL_NO_VERIFY See the git man page for details. Examples: 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 visionmedia/express

或者,你可以在package的“dependencies”部分添加“express”:“github:visionmedia/express”。,然后运行:

npm install

Peter Lyons给出的目前排名第一的答案与最近的NPM版本无关。例如,使用这个回答中批评的相同命令现在是可以的。

npm install https://github.com/visionmedia/express

如果您有持续的问题,这可能是您正在使用的任何包的问题。

你可以:

npm install git://github.com/foo/bar.git

或者在package.json中:

"dependencies": {
  "bar": "git://github.com/foo/bar.git"
}