NPM下载出错 No compatible version found

前言

NPM大家都熟,天天都在用。最近,NPM不断出现的下载出错 “npm ERR! Error: No compatible version found” ,已经影响到正常的开发工作,到了不得不解决的地步了。网上到处都是这个错误的问题,但解决问题的文章很难找到。我有必要来写一下。

目录

  1. NPM下载出错 No compatible version found
  2. 官方解决方案
  3. 其他解决方案

1. NPM下载出错 No compatible version found

最近,NPM不断出现的下载出错 “npm ERR! Error: No compatible version found” ,已经影响到了正常的开发工作,到了不得不解决的地步了。

我的系统环境

  • Win7 64bit
  • Node v0.10.5
  • NPM 1.2.19

NPM的下载出错


npm ERR! Error: No compatible version found: [email protected]‘^1.2.0‘
npm ERR! Valid install targets:
npm ERR! ["0.1.0","0.2.1","0.2.2","1.0.0","1.1.0","1.2.0"]
npm ERR!     at installTargetsError (D:\toolkit\nodejs\node_modules\npm\lib\cache.js:689:10)
npm ERR!     at D:\toolkit\nodejs\node_modules\npm\lib\cache.js:611:10
npm ERR!     at saved (D:\toolkit\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\get.js:138:7)
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this log at:
npm ERR!
npm ERR! or email it to:
npm ERR!     <[email protected]>

像这种类库管理本来不用动脑子的事情,一下子就会变得很麻烦了,小白程序员肯定是各种抓狂,网上所有的文章都解决不了自己的问题,对Nodejs瞬间失去信心….

我的项目中,只是要配置gulp包及相关插件的依赖下载,项目配置文件为 package.json。


{
  "name": "nodejs-cnpm",
  "version": "0.0.1",
  "description": "cnpm",
  "keywords": [
    "cnpm"
  ],
  "author": "Conan Zhang <[email protected]>",
  "main": "cnpm",
  "dependencies": {},
  "devDependencies": {
    "gulp": "^3.8.7",
    "gulp-changed": "^1.0.0",
    "gulp-concat": "^2.3.4",
    "gulp-jshint": "^1.8.4",
    "gulp-minify-css": "^0.3.7",
    "gulp-ngmin": "^0.3.0",
    "gulp-rename": "^1.2.0",
    "gulp-uglify": "^1.0.0",
    "gulp-util": "^3.0.1"
  }
}

无论怎么运行都是No compatible version found的错误。


~ npm install
npm WARN package.json [email protected] No readme data!
npm http GET https://registry.npmjs.org/gulp-changed
npm http GET https://registry.npmjs.org/gulp-concat
npm http GET https://registry.npmjs.org/gulp-ngmin
npm http GET https://registry.npmjs.org/gulp-uglify
npm http GET https://registry.npmjs.org/gulp-util
npm http GET https://registry.npmjs.org/gulp
npm http GET https://registry.npmjs.org/gulp-jshint
npm http GET https://registry.npmjs.org/gulp-minify-css
npm http GET https://registry.npmjs.org/gulp-rename
npm http 304 https://registry.npmjs.org/gulp-uglify
npm http 304 https://registry.npmjs.org/gulp-ngmin
npm ERR! Error: No compatible version found: [email protected]‘^1.0.0‘
npm ERR! Valid install targets:
npm ERR! ["0.0.1","0.0.3","0.0.4","0.1.0","0.2.0","0.2.1","0.3.0","0.3.1","0.3.2","1.0.0-0","1.0.0"]
npm ERR!     at installTargetsError (D:\toolkit\nodejs\node_modules\npm\lib\cache.js:689:10)
npm ERR!     at D:\toolkit\nodejs\node_modules\npm\lib\cache.js:611:10
npm ERR!     at saved (D:\toolkit\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\get.js:138:7)
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this log at:
npm ERR!
npm ERR! or email it to:
npm ERR!     <[email protected]>

npm ERR! System Windows_NT 6.1.7601
npm ERR! command "D:\\toolkit\\nodejs\\\\node.exe" "D:\\toolkit\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd D:\workspace\javascript\nodejs-cnpm
npm ERR! node -v v0.10.5
npm ERR! npm -v 1.2.19
npm http 304 https://registry.npmjs.org/gulp-concat
npm http 304 https://registry.npmjs.org/gulp-jshint
npm http 304 https://registry.npmjs.org/gulp-minify-css
npm http 304 https://registry.npmjs.org/gulp-changed
npm http 304 https://registry.npmjs.org/gulp-util
npm http 304 https://registry.npmjs.org/gulp
npm http 304 https://registry.npmjs.org/gulp-rename
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     D:\workspace\javascript\nodejs-cnpm\npm-debug.log
npm ERR! not ok code 0

2. 官方解决方案

查看NPM官方的说明Issue列表( https://github.com/npm/npm/issues/4984 ),这个问题已经被解决,但解决办法确实很不友好。

如果在Linux系统中,通过一条命令更新npm可以解决。

npm install -g npm

在Window环境中,必须升级NPM到1.4.10以上的版本,我重新安装了node-v0.10.31-x64.msi,对应的NPM为1.4.23,再此运行npm install命令,依赖包下载运行正常。

升级后的系统环境

  • Win7 64bit
  • Node 0.10.31
  • NPM 1.4.23

下载依赖包,运行正常。


~ npm install
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No README data
npm WARN deprecated [email protected]: Deprecated in favor of gulp-ng-annotate: https://github.com/Kagami/gulp-ng-annotat
e - Reasoning: https://github.com/btford/ngmin/issues/93
[email protected] node_modules\gulp-rename

[email protected] node_modules\gulp-changed
└── [email protected] ([email protected], [email protected])

[email protected] node_modules\gulp-util
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

[email protected] node_modules\gulp-uglify
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])

[email protected] node_modules\gulp-minify-css
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] (lodash._reinterpol[email protected], [email protected], [email protected], [email protected], [email protected],[email protected], [email protected])

[email protected] node_modules\gulp-concat
├── [email protected]
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

[email protected] node_modules\gulp-ngmin
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected],[email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

[email protected] node_modules\gulp
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

[email protected] node_modules\gulp-jshint
├── [email protected]
├── [email protected] ([email protected])
├── minimatch[email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

向这种强制性的升级,对于开发者来说是很不友好的、很难接受的。一个稳定运行的应用,只是为了改动一个小功能,被这种霸王的条件强制升级,有可能应用的整个环境都被破坏了,其他的很多包也要跟着升级,代价很大啊!

3. 其他解决方案

我在测试中发现了,除了强制升级NPM以外,还有一种解决方案,就是利用CNPM代替NPM来进行依赖管理,也能够正常地下载依赖包。

CNPM 是一个Nodejs的库,致力于打造私有的 NPM 注册服务。当然,除了私有库功能以外,CNPM官网还提供了NPM同步的服务。CNPM的配置及使用,将在下一篇文章中介绍,请参考文章CNPM搭建私有的NPM服务。让我们远离NPM包下载的错误吧,专心写好程序才是重点!

转载请注明出处:
http://blog.fens.me/nodejs-npm-no-compatible-version

时间: 2024-11-05 12:33:23

NPM下载出错 No compatible version found的相关文章

解决 no compatible version found: [email&#160;protected]^3.5.0

npm ERR! Linux 4.2.0-42-generic npm ERR! argv "/usr/src/node-v6.10.3-linux-x64/bin/node" "/usr/src/node-v6.10.3-linux-x64/bin/npm" "install" "ionic-native" npm ERR! node v6.10.3 npm ERR! npm v3.10.10 npm ERR! code E

npm下载gulp出错问题解决

(win8系统) 前几天因为npm下载weinre老是出错,于是一怒之下重装系统...... 于是这几天都在搭建环境 到了gulp这里,又死掉了..... 作为一个程序媛小白,只能到处百度 由于npm的服务器是在美国,npm下载失败的原因也有很多,防火墙也是一个坑.... 最后在stack overflow 里面找到了解决方法 出错提示  (解析不了json文件,于是小白我去打开一下那个json,果然都是null) failed to parse json 只要输入 npm cache clea

Mac OS使用技巧十二:解决APP Store更新、下载出错的问题

前面介绍了Mac OSX那么多强大的功能和各式各样的使用技巧,那么苹果系统有没有让人头疼的地方呢?恐怕APP Store的下载问题一直是困扰许多用户的永恒问题,为什么有的时候就可以下,为什么有的时候就不可以下?可能是因为网络问题,可能是因为系统bug,可能是因为没有翻墙,具体原因我们也不明了.最常见就是下面的情景,实际情况是,你特么去已购页面再试也是没用的. 这里我在网络上积累的多种常用方法和一些自己亲身的体会,来教大家几种解决APP Store无法下载的方法. 一.首先是修改DNS,系统偏好

node之npm一直出错

最近安装node,npm一直不成功,终于找了好久找到解决办法,参考参考 解决办法: 删除npmrc文件. 使用镜像 镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在): 1.通过config命令 1 2 npm config set registry http://registry.cnpmjs.org npm info underscore (如果上面配置正确这个命令会有字符串response) 2.命令行指定 1 npm --registry ht

解决npm下载包失败的问题

在我朝,用npm直接从官方的镜像下载包,经常会出现网络超时下载失败的问题,具体原因大家都懂,我就不说了. 不过,这些都无法阻挡我们对知识的渴望,一下提供几种我在工作中的解决办法,希望能帮助你. 1.安装淘宝的镜像工具,cnpm ,具体方法参考链接对应的文章,cnpm 基本可以解决绝大多数问题 ,感谢淘宝: 2.安装yarn,yarn是facebook 推出的包管理工具,据说很厉害的样子,我自己只是偶尔使用,不过就用了几次,确实感觉速度挺快的. yarn install 会读取yarn.lock文

NPM下载路径配置

设置npm的默认下载安装路径,和缓存路径 // 设置npm安装程序时的默认位置 npm config set prefix "D:\Program Files\nodejs\X64\node_global" // 设置npm安装程序时的缓存位置 npm config set cache "D:\Program Files\nodejs\X64\node_cache" 最后在把D:\Program Files\nodejs\X64\node_global\node_m

迅雷下载出错应版权方要求文件无法下载(推荐下载迅雷5.8典藏版,亲测可行)

方法一:百度网盘离线下载 1 百度网盘离线下载支持:电驴链接,一般是"ed2k:"开头的地址,磁力链接,一般是"magnet:?xt="开头的地址,不支持:"thunder:"开头的迅雷下载地址 一般迅雷无法下载的thunder地址的资源,我们可以在百度搜索看看有没有电驴连接或者磁力链接的资源,如果有,我们就可以直接通过百度网盘下载,我们可以借助百度网盘离线功能下载,速度非常快 2 电脑是右击复制下载链接,手机用户是按住链接复制 3 打开百度网盘

解决npm下载慢的问题

方法一:使用淘宝定制的cnpm命令行工具替代默认安装npm npm install -g cnpm --registry=https://registry.npm.taobao.org 方法二:将npm默认的下载地址修改为淘宝镜像 npm cofig set registry https://registry.npm.taobao.org/ 注意,如果将来你需要发布自己的软件包时,需要将registry字段的值修改回来 npm cofig set registry https://registr

npm下载错误解决办法

解决办法:删除npmrc文件. 使用镜像 镜像使用方法(三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候配置还在):1.通过config命令12npm config set registry http://registry.cnpmjs.orgnpm info underscore (如果上面配置正确这个命令会有字符串response)2.命令行指定1npm --registry http://registry.cnpmjs.org info underscore3.编辑