簡體   English   中英

使用package.json文件或不使用package.json文件安裝Express時出錯

[英]Error in installing express either using package.json file or without using package.json file

我正在嘗試按照Express網站指南中提到的說明在Windows終端中安裝Express

1首先,我在該package.json文件中創建了一個目錄節點。

我的package.json如下

{
  "name": "hello-world",
  "description": "hello world test app",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "express": "3.x"
  }
}

然后我嘗試運行命令

npm install

但是出現以下錯誤

E:\myFindings\nodejs_programs\node>npm install
npm http GET https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/express/-/express-3.4.8.tgz
npm ERR! Error: tunneling socket could not be established, cause=connect ETIMEDOUT
npm ERR!     at ClientRequest.onError (C:\Program Files\nodejs\node_modules\npm\node_modules\request\tunnel.js:161:17)
npm ERR!     at ClientRequest.g (events.js:185:14)
npm ERR!     at ClientRequest.EventEmitter.emit (events.js:88:17)
npm ERR!     at Socket.socketErrorListener (http.js:1320:9)
npm ERR!     at Socket.EventEmitter.emit (events.js:88:17)
npm ERR!     at Socket._destroy.self.errorEmitted (net.js:329:14)
npm ERR!     at process.startup.processNextTick.process._tickCallback (node.js:244:9)
npm ERR!  { [Error: tunneling socket could not be established, cause=connect ETIMEDOUT] code: 'ECONNRESET' }
npm ERR! You may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd E:\myFindings\nodejs_programs\node
npm ERR! node -v v0.8.0
npm ERR! npm -v 1.1.32
npm ERR! code ECONNRESET
npm ERR! message tunneling socket could not be established, cause=connect ETIMEDOUT
npm ERR! Error: socket hang up
npm ERR!     at createHangUpError (http.js:1253:15)
npm ERR!     at Socket.socketCloseListener (http.js:1304:23)
npm ERR!     at Socket.EventEmitter.emit (events.js:88:17)
npm ERR!     at Socket._destroy.destroyed (net.js:358:10)
npm ERR!     at process.startup.processNextTick.process._tickCallback (node.js:244:9)
npm ERR!  { [Error: socket hang up] code: 'ECONNRESET' }
npm ERR! You may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd E:\myFindings\nodejs_programs\node
npm ERR! node -v v0.8.0
npm ERR! npm -v 1.1.32
npm ERR! code ECONNRESET
npm ERR! message socket hang up
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     E:\myFindings\nodejs_programs\node\npm-debug.log
npm ERR! not ok code 0

我無法理解問題所在,請幫助我進行解決

我什至嘗試在不使用.json文件的情況下安裝express,但出現相同的錯誤

我的npm配置列表的內容

E:\myFindings\nodejs_programs\node>npm config list
; cli configs

; userconfig C:\Users\sudipkumars\.npmrc
https-proxy = "http://sudip:sudip7@proxy:8086/"
proxy = "http://sudip:sudip7@proxy:8086/%20strict-ssl%20=%20false"
registry = "https://registry.npmjs.org/"

; builtin config C:\Program Files\nodejs\node_modules\npm\npmrc
prefix = "C:\\Users\\sudipkumars\\AppData\\Roaming\\npm"

; node install prefix = C:\Program Files
; node bin location = C:\Program Files\nodejs\\node.exe
; cwd = E:\myFindings\nodejs_programs\node
; HOME = C:\Users\sudipkumars
; 'npm config ls -l' to show all defaults.

我嘗試過你的建議

npm配置設置注冊表http://registry.npmjs.org/

和輸出是

E:\myFindings\nodejs_programs\node>npm install express
npm http GET http://registry.npmjs.org/express
npm http 304 http://registry.npmjs.org/express
npm http GET http://registry.npmjs.org/express/-/express-3.4.8.tgz
npm ERR! Error: getaddrinfo ENOENT
npm ERR!     at errnoException (dns.js:31:11)
npm ERR!     at Object.onanswer [as oncomplete] (dns.js:123:16)
npm ERR!  { [Error: getaddrinfo ENOENT] code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo' }
npm ERR! You may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

在理解問題上。 問題在於您的計算機無法與以下設備建立連接: https : //registry.npmjs.org/express/-/express-3.4.8.tgz

它正在嘗試使用HTTP GET方法在NPM注冊表中從服務器檢索文件,但似乎已超時:

npm http GET https://registry.npmjs.org/express/-/express-3.4.8.tgz
npm ERR! Error: tunneling socket could not be established, cause=connect ETIMEDOUT

這可能是出於幾個原因,但我將提及兩個主要原因:

  1. npmjs.org的停機時間,可通過http://status.npmjs.org/輕松檢查
  2. 您在防止這種情況的代理人背后

查看您的npm配置:

  • 除非您有一個稱為proxy的代理設置,否則它將無法正常工作。 所以清除代理變量集
  • 使用npm config set strict-ssl false將strict SSL設置為false npm config set strict-ssl false
  • 如果這兩個都不起作用,請嘗試使用npm config set registry http://registry.npmjs.org/設置為使用非加密連接

我通過發出以下命令解決了這個問題

npm config set proxy false
npm cache clean

運行以下命令

npm install express

解決方法: npm config set registry= http://registry.npmjs.org/效果很好。

暫無
暫無

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

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