簡體   English   中英

Node.js npm install express錯誤提取失敗

[英]Node.js npm install express error fetch failed

npm install express導致以下錯誤

$ npm install express
npm ERR! fetch failed https://registry.npmjs.org/debug/-/debug-2.1.0.tgz
npm ERR! fetch failed https://registry.npmjs.org/etag/-/etag-1.5.1.tgz
npm ERR! fetch failed https://registry.npmjs.org/methods/-/methods-1.1.0.tgz
npm ERR! fetch failed https://registry.npmjs.org/on-finished/-/on-finished-2.1.1.tgz
npm ERR! fetch failed https://registry.npmjs.org/debug/-/debug-2.1.0.tgz
npm ERR! fetch failed https://registry.npmjs.org/debug/-/debug-2.1.0.tgz
npm ERR! Error: Hostname/IP doesn't match certificate's altnames
npm ERR!     at SecurePair.<anonymous> (tls.js:1389:23)
npm ERR!     at SecurePair.emit (events.js:92:17)
npm ERR!     at SecurePair.maybeInitFinished (tls.js:979:10)
npm ERR!     at CleartextStream.read [as _read] (tls.js:471:13)
npm ERR!     at CleartextStream.Readable.read (_stream_readable.js:340:10)
npm ERR!     at EncryptedStream.write [as _write] (tls.js:368:25)
npm ERR!     at doWrite (_stream_writable.js:225:10)
npm ERR!     at writeOrBuffer (_stream_writable.js:215:5)
npm ERR!     at EncryptedStream.Writable.write (_stream_writable.js:182:11)
npm ERR!     at write (_stream_readable.js:601:24)
npm ERR!     at flow (_stream_readable.js:610:7)
npm ERR!     at Socket.pipeOnReadable (_stream_readable.js:642:5)
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Linux 3.14.13-c9
npm ERR! command "/home/ubuntu/.nvm/v0.10.33/bin/node" "/home/ubuntu/.nvm/v0.10.33/bin/npm" "install" "express"
npm ERR! cwd /home/ubuntu/workspace
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! not ok code 0

怎么解決這個? INCORRECT答案已經有很多這個問題的重復,我正在用下面的正確答案分享這個問題以便清理。

根本問題(對我和其他許多人來說)是npm本身的過時版本

$ npm version
{ http_parser: '1.0',
  node: '0.10.33',
  v8: '3.14.5.9',
  ares: '1.9.0-DEV',
  uv: '0.10.29',
  zlib: '1.2.3',
  modules: '11',
  openssl: '1.0.1j',
  npm: '1.4.28' }

寫作時npm的最新版本是2.1.6,所以1.4.28已經過時了。 簡單地跑

$ npm install npm -g
/home/ubuntu/.nvm/v0.10.33/bin/npm -> /home/ubuntu/.nvm/v0.10.33/lib/node_modules/npm/bin/npm-cli.js
npm@2.1.11 /home/ubuntu/.nvm/v0.10.33/lib/node_modules/npm

之后,npm install express工作正常。

$ npm install express
express@4.10.5 node_modules/express
├── utils-merge@1.0.0
├── merge-descriptors@0.0.2
├── fresh@0.2.4
├── cookie@0.1.2
├── escape-html@1.0.1
├── range-parser@1.0.2
├── cookie-signature@1.0.5
├── finalhandler@0.3.2
├── vary@1.0.0
├── media-typer@0.3.0
├── parseurl@1.3.0
├── methods@1.1.0
├── serve-static@1.7.1
├── content-disposition@0.5.0
├── path-to-regexp@0.1.3
├── depd@1.0.0
├── qs@2.3.3
├── etag@1.5.1 (crc@3.2.1)
├── on-finished@2.1.1 (ee-first@1.1.0)
├── debug@2.1.0 (ms@0.6.2)
├── send@0.10.1 (destroy@1.0.3, ms@0.6.2, mime@1.2.11)
├── accepts@1.1.4 (negotiator@0.4.9, mime-types@2.0.4)
├── type-is@1.5.4 (mime-types@2.0.4)
└── proxy-addr@1.0.4 (forwarded@0.1.0, ipaddr.js@0.1.5)

很多人認為問題是SSL證書無法正確識別,因此建議使用以下錯誤,不應使用,因為它們會導致獲取時使用不安全的連接:

在npm install express之前運行npm config set registry http://registry.npmjs.org/或npm config set strict-ssl false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM