【问题标题】:NPM UPDATE module version mismatch issueNPM UPDATE 模块版本不匹配问题
【发布时间】:2013-02-08 20:19:19
【问题描述】:

我在其中一个项目中使用了 session-mongoose(0.0.2) 模块。这是在节点版本 v0.6.7 之上运行的。最近有一些变化,session-mongoose 模块尝试在对我的根 package.json 使用命令“npm update”时拉出与节点版本(v0.6.19)兼容的模块 mongoose。

由于 session-mongoose 及其依赖项是通过“npm update”命令从 npm 注册表动态提取的,我无法控制这些。

现在的问题是系统停止在新部署的生产环境中工作。有没有办法在不更新节点版本的情况下解决这个问题?

错误日志是,

npm ERR! error rolling back mongoose@3.5.5 Error: UNKNOWN, unknown error 'C:\Pro
gram Files\nodejs\node_builds\server\node_modules\session-mong
oose\node_modules\mongeese\node_modules\mongoose'

npm ERR! Unsupported
npm ERR! Not compatible with your version of node/npm: mongodb@1.2.11
npm ERR! Required: {"node":">=0.6.19"}
npm ERR! Actual:   {"npm":"1.1.13","node":"0.6.7"}
npm ERR!
npm ERR! System Windows_NT 5.1.2600
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "update"
npm ERR! cwd C:\Program Files\nodejs\node_builds\server
npm ERR! node -v v0.6.7
npm ERR! npm -v 1.1.13
npm ERR! code ENOTSUP
npm ERR! message Unsupported
npm ERR! errno {}
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\Program Files\nodejs\node_builds\server\npm-de
bug.log
npm not ok

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    您必须更新 node.js。否则您将无法使用最近发布的软件包。 0.6.19 版于 2012 年 6 月发布。从那时起进行了许多更改。 最近的稳定版本是 0.8.19。

    在处理依赖时,你应该使用 npm-shrinkwrap 来锁定依赖。 http://blog.nodejs.org/2012/02/27/managing-node-js-dependencies-with-shrinkwrap/

    或者您可以在计划部署后冻结项目(不要进行更新)。

    【讨论】:

    • 尽管当前稳定的 node 版本是 0.8.x。从 0.6.7 更新到 0.6.19(至少)是一个次要更新。实际上不是 semver 模式的小更新,只是构建更新。
    • 是的,一个小更新(或语义版本的补丁更新),但最重要的是他们添加了额外的 API,而不改变现有的 API。所以你应该能够在不更改代码的情况下运行。
    • @user568109 但是 npm update commant 仍然有问题。无论如何,谢谢你,伙计。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2014-08-27
    相关资源
    最近更新 更多