【问题标题】:Node.js npm install express error fetch failedNode.js npm install express 错误获取失败
【发布时间】:2015-02-10 16:00:40
【问题描述】:

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

如何解决这个问题?这个问题已经有很多重复的答案不正确,我将与下面的正确答案分享这个问题以澄清问题。

【问题讨论】:

    标签: node.js express npm


    【解决方案1】:

    根本问题(对我和其他许多人来说)是 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

    【讨论】:

      猜你喜欢
      • 2015-09-11
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 2018-04-22
      • 2015-01-02
      • 1970-01-01
      相关资源
      最近更新 更多