Node.js Core -Best Javascript Runtime

Node.js 是非常优秀的 Javascript Runtime,NodejsCore介绍 Node.js 框架、应用程序和服务器端的开发问题

Learn more

“npm update”是在“npm install”之后安装的稳定版本上安装模块的beta版本,

目前npm包mongoose在版本3.8.12上。 运行npm install mongoose –save正确安装版本3.8.12并将依赖关系保存到package.json,如下所示: "dependencies": { "mongoose": "^3.8.12" } 如果你看看node_modules/mongoose/package.json你可以看到安装的版本确实是3.8.12。 但是,如果我现在运行npm update那么npm将继续,并安装一个不稳定版本的mongoose(3.9.0)。 我认为这是因为依赖项条目中的脱字号,告诉npm继续升级小版本(即3.8到3.9)。 这很好,除了我不想要任何预发布版本。 如果我修改依赖关系并删除脱字符,那么npm update按预期工作,除了当然我现在必须手动升级依赖项版本,即使是次要和补丁更新。 你可以从运行npm info mongoose看到他们有一个“最新”标签和一个“不稳定”标签。 所以很明显npm install使用最新的,除非另有说明,而npm update则完全忽略了标签,并抓住了它所知道的最新次要版本。 有没有办法修改依赖,所以npm update将拉入最新的次要版本,但忽略任何预发行版本? UPDATE 如果我尝试使用3.xx作为依赖项,则会出现同样的问题。 我希望这仍然可以让我通过小版本升级没有预发布版本,但事实并非如此:/ 蒂尔德( ~3.8.12 )在技术上~3.8.12但是它是一个绷带。 “工作”的唯一原因是因为引入的重大更改是3.9.0-unstable并且代字号不允许npm跨小版本升级。 如果这些“不稳定的”变化在3.8.13-unstable中引入,那么即使在使用代字号时也会出现同样的问题。 更新2 我也尝试手动指定“最新”标签: ^3.8.12-latest 。 这并没有改变任何东西; npm update完全忽略标记,即使它明确地在依赖列表本身:/