猿吟鹤唳本无意,不知下有行人行

npm 安装出现 UNMET DEPENDENCY 的解决方案

 
npm install express -g
...
npm list -g
D:UsersLsAppDataRoamingnpm
└─┬ express@3.4.8
  ├── buffer-crc32@0.2.1
  ├─┬ commander@1.3.2
  │ └── keypress@0.1.0
  ├─┬ connect@2.12.0
  │ ├── UNMET DEPENDENCY batch 0.5.0
  │ ├── UNMET DEPENDENCY bytes 0.2.1
  │ ├── UNMET DEPENDENCY multiparty 2.2.0
  │ ├── UNMET DEPENDENCY negotiator 0.3.0
  │ ├── UNMET DEPENDENCY pause 0.0.1
  │ ├── UNMET DEPENDENCY qs 0.6.6
  │ ├── UNMET DEPENDENCY raw-body 1.1.2
  │ └── UNMET DEPENDENCY uid2 0.0.3
  ├── cookie@0.1.0
  ├── cookie-signature@1.0.1
  ├── debug@0.7.4
  ├── fresh@0.2.0
  ├── merge-descriptors@0.0.1
  ├── methods@0.1.0
  ├── mkdirp@0.3.5
  ├── range-parser@0.0.4
  └─┬ send@0.1.4
    └── mime@1.2.11
 
npm ERR! missing: batch@0.5.0, required by connect@2.12.0
npm ERR! missing: bytes@0.2.1, required by connect@2.12.0
npm ERR! missing: pause@0.0.1, required by connect@2.12.0
...
npm ERR! not ok code 0

 

今天安装一些模块的时候发现 npm install 到了一个点之后就卡住了一样等了半天一直不动,接着中断看了下出现安装出现了 UNMET DEPENDENCY 的 模块,这个时候如果重新 install 一便的话,又会重头开始,如果又碰到卡壳就很烦。

查了一下发现是跟旧版 npm 有关的问题: https://github.com/isaacs/npm/issues/1341#issuecomment-20634338

方案一

1
2
3
rm -rf node_modules/    # 删除已安装的模块
npm cache clean         # 清除 npm 内部缓存
npm install             # 重新安装

方案二

1
2
3
rm -rf node_modules/    # 删除已安装的模块
sudo npm update -g npm  # 更新 npm
npm install             # 重新安装

方案三

npm list 命令查看之后跑到缺失模块的目录下, 手动修复部分出错的模块:

$ npm list -g
D:UsersLsAppDataRoamingnpm
└─┬ express@3.4.8
  ├── buffer-crc32@0.2.1
  ├─┬ commander@1.3.2
  │ └── keypress@0.1.0
  ├─┬ connect@2.12.0
  │ ├── UNMET DEPENDENCY batch 0.5.0
  │ ├── UNMET DEPENDENCY bytes 0.2.1
  │ ├── UNMET DEPENDENCY multiparty 2.2.0
  │ ├── UNMET DEPENDENCY negotiator 0.3.0
  │ ├── UNMET DEPENDENCY pause 0.0.1
  │ ├── UNMET DEPENDENCY qs 0.6.6
  │ ├── UNMET DEPENDENCY raw-body 1.1.2
  │ └── uid2@0.0.3
  ├── cookie@0.1.0
  ├── cookie-signature@1.0.1
  ├── debug@0.7.4
  ├── fresh@0.2.0
  ├── merge-descriptors@0.0.1
  ├── methods@0.1.0
  ├── mkdirp@0.3.5
  ├── range-parser@0.0.4
  └─┬ send@0.1.4
    └── mime@1.2.11
 
npm ERR! missing: batch@0.5.0, required by connect@2.12.0
npm ERR! missing: qs@0.6.6, required by connect@2.12.0
npm ERR! missing: bytes@0.2.1, required by connect@2.12.0
npm ERR! missing: pause@0.0.1, required by connect@2.12.0
npm ERR! missing: raw-body@1.1.2, required by connect@2.12.0
npm ERR! missing: negotiator@0.3.0, required by connect@2.12.0
npm ERR! missing: multiparty@2.2.0, required by connect@2.12.0
npm ERR! not ok code 0

 

可以 cd 到具体出问题的模块目录下手动 npm install 重新安装也可以解决.

发表评论

您的电子邮箱地址不会被公开。