npm 无法正常update原因及解决方案

metersgrunt-hellosprite 一直有更新,但在项目里通过npm自带的update无法实现自动升级,而且既没有提示,也没有报错,只能删除node_modules目录后,重新 npm install 安装所有最新版本的依赖模块,这无疑让本该顺畅的自动化流程不那么尽如人意。 为了解决这一问题,在安装了较低版本的 grunt-hellosprite 后,我尝试了以下几个方法来更新:

  1. 单独更新文件,即 npm install grunt-hellosprite ,无法更新;
  2. 运行 npm outdated 查看哪些模块有升级,同update一样,cmd毫无反馈;
  3. 先卸载 npm uninstall grunt-hellosprite ,重新安装,再更新,结果跟以前一样;
  4. 在不同的node.js 和 npm 安装环境下测试,结果没有改变;
  5. 在安装了旧版本的前提下,将 package.json 中的版本信息改为 ">0.1.14" 或 大于任意旧版本,运行 npm install能升级到最新版本,但需要修改依赖文件,不方便;
在查阅了GitHub上关于update问题的讨论后,这两组讨论解决了我的疑惑 :

npm outdated does not list outdated devDependencies online casino include devDependencies in outdated and update npm 对package.json中放置在devDependencies里的模块是不支持查询过期信息和升级功能的(无数开发吐槽…)。由于在项目里这些模块一直作为开发工具使用,默认放在了devDependencies里,导致了升级无效的问题。

将需要使用的依赖模块放到dependencies里就能顺利运行 npm outdatednpm update,正常使用查询和自动更新功能啦! 就是这样么么哒~~ ———————- 2013/12/24:  此 Bug 已修复,详情见:

https://github.com/isaacs/npm/pull/3863

One thought on “npm 无法正常update原因及解决方案

  1. Maynard

    I see a lot of interesting posts here, i know writing posts is time consuming, but i know unlimited source of content for your blog , just type in google – rewriter creates an unique article in a minute

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *