node.js - npm install 不在 GitHub 上安装最新版本

标签 node.js express npm sails.js waterline

我有一个名为“sails-mongo”的模块,我想使用以下命令将其更新到最新版本:

npm update sails-mongo --save

我也试过卸载然后重新安装。我试过 sails-mongo@latestsails-mongo@beta

问题: package.json (https://github.com/balderdashy/sails-mongo/blob/master/package.json) 文件在 GitHub 上的当前版本 (ma​​ster):

"dependencies": {
  "async": "~0.2.9",
  "lodash": "~2.4.1",
  "mongodb": "1.4.2",
  "waterline-errors": "~0.10.0"
},

在更新中

"dependencies": {
  "async": "0.2.10",
  "underscore": "1.5.2",
  "underscore.string": "2.3.3",
  "mongodb": "~1.3.23"
},

我获得 master 分支的唯一方法是使用命令 npm install git+https://github.com/balderdashy/sails-mongo

为什么sails-mongo@latest不安装master分支?

最佳答案

默认情况下,NPM 依赖项是从 NPM 存储库中提取的。作者必须手动将其软件的新版本上传到 NPM 存储库,因此 NPM 上托管的代码的“@latest”版本不同于任何地方存在的代码的最新版本(例如,在GitHub)。

根据 NPM 存储库的 info page on Sails ,最新的 NPM 托管版本是 0.9.16current GitHub version0.10.0-rc3

如果您想让您的项目依赖于特定 Git 存储库的特定分支或提交(而不是 NPM 存储库中托管的版本),NPM 开发人员已经包含了一个明确的机制来实现这一点,详细在“Git URLs as Dependencies”中的 package.json docs :

Git URLs as Dependencies

Git urls can be of the form:

git://github.com/user/project.git#commit-ish
git+ssh://user@hostname:project.git#commit-ish
git+ssh://user@hostname/project.git#commit-ish
git+http://user@hostname/project/blah.git#commit-ish
git+https://user@hostname/project/blah.git#commit-ish

The commit-ish can be any tag, sha, or branch which can be supplied as an argument to git checkout. The default is master.

事实上,use a Github.com repo 更容易。作为依赖:

As of version 1.1.65, you can refer to GitHub urls as just "foo": "user/foo-project". For example:

{
  "name": "foo",
  "version": "0.0.0",
  "dependencies": {
    "express": "visionmedia/express"
  }
}

因此,要使用 Sails GitHub 存储库,只需使用:

"dependencies": {
  "sails": "balderdashy/sails-mongo",
  ...
}

要使用截至 2014 年 4 月 28 日在 GitHub 上存在的 Sails 的确切状态,请使用:

"dependencies": {
  "sails": "git://github.com/balderdashy/sails-mongo#b9cdce9a48",
  ...
}

关于node.js - npm install 不在 GitHub 上安装最新版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23338393/

相关文章:

node.js - 如何处理restify中的403 HTTP错误?

javascript - ipython 等效于 node.js 的 javascript/coffeescript?

node.js - 为什么我不能在 windows 上的 nodejs 中杀死我的子进程?

node.js - 如何设置 Node/Express 作为 STUN 服务器?

npm - 用 npm 脚本替换 uglify 的 Gulp 任务

javascript - 是否有用于 Node 的 window.DOMParser() 的 polyfill

node.js - 如何使用 async/await 进行正确的错误处理

node.js - 如何使用node和mongodb进行查找?

node.js - 无法安装或启动 npm for React

node.js - 安装了 Expo-cli 但 "-bash: expo: command not found"