2015-07-15 9 views
0

Я должен установить socket.io в корпоративной сети. Ниже приведены значения, установленные в .npmrc.socket.io - не в состоянии установить

proxy = http://xxx.xx.xx.xxx:8080 
https-proxy = http://xxx.xx.xx.xxx:8080 
registry = http://registry.npmjs.org/ 
strict-ssl = false 

Я установил express, grunt и bower с теми же настройками. Когда я выполняю npm install socket.io, я становлюсь ниже ошибки.

npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f 
2.tar.gz 
npm http GET https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz 
npm ERR! fetch failed https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f 
2.tar.gz 
unbuild [email protected] 
unbuild [email protected] 
unbuild [email protected] 
npm ERR! Error: tunneling socket could not be established, cause=Parse Error 
npm ERR!  at ClientRequest.onError (C:\Program Files\nodejs\node_modules\npm\ 
node_modules\request\node_modules\tunnel-agent\index.js:159:17) 
npm ERR!  at ClientRequest.g (events.js:175:14) 
npm ERR!  at ClientRequest.EventEmitter.emit (events.js:95:17) 
npm ERR!  at Socket.socketOnData (http.js:1569:9) 
npm ERR!  at TCP.onread (net.js:525:27) 
npm ERR! If you need help, you may report this log at: 
npm ERR!  <http://github.com/isaacs/npm/issues> 
npm ERR! or email it to: 
npm ERR!  <[email protected]> 

npm ERR! System Windows_NT 6.1.7601 
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod 
ejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "socket.io" 
npm ERR! cwd C:\Users\xxx\Socket_POC 
npm ERR! node -v v0.10.13 
npm ERR! npm -v 1.3.2 
npm ERR! code ECONNRESET 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  C:\Users\xxx\Socket_POC\npm-debug.log 
npm ERR! not ok code 0 

Я не мог понять, почему он собирается github для извлечения данных. Тем не менее я попытался запустить ниже код index.js с node и получаю сообщение об ошибке:

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 

/*app.get('/', function(req, res){ 
    res.send('<h1>Hello world</h1>'); 
});*/ 

app.get('/', function(req, res){ 
    res.sendFile(__dirname + '/index.html'); 
}); 

http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

ошибка:

module.js:340 
    throw err; 
     ^
Error: Cannot find module 'engine.io' 
    at Function.Module._resolveFilename (module.js:338:15) 
    at Function.Module._load (module.js:280:25) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.<anonymous> (C:\Users\xxx\node_modules\socket.io\lib\index.js 
:9:14) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 

Даже я установил engine.io, но все еще не мог в состоянии установить socket.io.

Как решить эту проблему с помощью установки socket.io ???

ответ

2

engine.io-client, зависимость, тянет version из XMLHttpRequestdirectly from github.com не НПМ реестра. Ваш корпоративный прокси блокирует вас от загрузки файлов на github?

Если это так, вы не сможете установить их до тех пор, пока они не сольются, и нажмите эту ветку XMLHttpRequest в реестр npm.

0

Я вижу, что это старый вопрос, но я только что наткнулся на то же самое.

Если вам действительно нужно использовать эту версию socket.io (обновление socket.io просто решит ее, так как использует более новую версию engine.io-client).

Существует один способ переопределить внутренние зависимости. Вы можете использовать npm shrinkwrap. Вы определяете файл с именем npm-shrinkwrap.json и внутри, определяете, что ваша зависимость (в вашем случае socket.io) использует разные внутренние зависимости (в вашем случае engine.io-client).

{ 
    "name": "<your_package>", 
    "version": "<your_package_version>", 
    "dependencies": { 
    "socket.io": { 
     "version": "1.5.2", 
     "from": "[email protected]", 
     "dependencies": { 
     "engine.io-client": { 
      "version": "1.6.4", //this one does not have issue with external download 
      "from": "[email protected]" 
     } 
     } 
    } 
    } 
} 

Кроме того, убедитесь, что внутри package.json вы положили

"engine.io-клиент": 1.6.4

Смежные вопросы