2016-02-19 13 views
6

Non riesco ad avviare il lite-server 2.1.0 utilizzando npm su Ubuntu 14.04. Sto cercando di eseguire l'esempio di avvio rapido Angular2.Work Around o Fix per NPM lite-server su errore Linux durante l'esecuzione di Angular 2 Quick Start

Questo problema potrebbe essere specifico per Linux e ha iniziato a verificarsi solo dopo un recente aggiornamento ad Ubuntu. Sono in grado di eseguire correttamente l'avvio rapido Angular2 su Windows 8.1. Ho provato diverse versioni di NPM e Node senza modifiche nei miei risultati. Anche l'esecuzione dell'esempio di Angular Heroes ha esito negativo con lo stesso problema.

Qualsiasi soluzione o intervento temporaneo sarebbe molto apprezzata.

Dopo transpiling successo dattiloscritto a JavaScript, qui è il risultato del tentativo di avviare lite-server tramite NPM:

npm run lite 

events.js:154 
     throw er; // Unhandled 'error' event 
    ^

Error: watch node_modules/insight/node_modules/lodash/internal/baseForOwnRight.js ENOSPC 
    at exports._errnoException (util.js:856:11) 
    at FSWatcher.start (fs.js:1313:19) 
    at Object.fs.watch (fs.js:1341:11) 
    at createFsWatchInstance (/tf/sbtf/ang2-reg/node_modules/chokidar/lib/nodefs-handler.js:37:15) 
    at setFsWatchListener (/tf/sbtf/ang2-reg/node_modules/chokidar/lib/nodefs-handler.js:80:15) 
    at FSWatcher.NodeFsHandler._watchWithNodeFs (/tf/sbtf/ang2-reg/node_modules/chokidar/lib/nodefs-handler.js:228:14) 
    at FSWatcher.NodeFsHandler._handleFile (/tf/sbtf/ang2-reg/node_modules/chokidar/lib/nodefs-handler.js:255:21) 
    at FSWatcher.<anonymous> (/tf/sbtf/ang2-reg/node_modules/chokidar/lib/nodefs-handler.js:473:21) 
    at FSReqWrap.oncomplete (fs.js:82:15) 

npm ERR! Linux 3.19.0-49-generic 
npm ERR! argv "/tf/node/bin/node" "/tf/node/bin/npm" "run" "lite" 
npm ERR! node v5.6.0 
npm ERR! npm v3.7.2 
npm ERR! code ELIFECYCLE 
npm ERR! ang2-reg[email protected] lite: `lite-server` 
npm ERR! Exit status 1 

Ecco il package.json. Ho fatto passare lite-server a 2.1.0 per vedere se sarebbe stato d'aiuto, ma non è così.

{ 
    "name": "ang2-reg", 
    "version": "1.0.0", 
    "scripts": { 
    "postinstall": "npm run typings install", 
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "lite": "lite-server", 
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ", 
    "typings" : "typings" 
    }, 
"license": "ISC", 
"dependencies": { 
    "angular2": "2.0.0-beta.6", 
    "bootstrap": "^3.3.6", 
    "systemjs": "0.19.20", 
    "es6-promise": "^3.0.2", 
    "es6-shim": "^0.33.3", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.0", 
    "systemjs": "0.19.17", 
    "zone.js": "0.5.14" 
    }, 
    "devDependencies": { 
    "concurrently": "^1.0.0", 
    "lite-server": "^2.1.0", 
    "typescript": "^1.8.0", 
    "typings":"^0.6.8" 
    } 
} 

Ecco il config dattiloscritto:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "system", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
    }, 
    "exclude": [ 
    "node_modules", 
    "typings/main", 
    "typings/main.d.ts" 
    ] 
} 

Ecco la parte di messaggio di errore dalla NPM-debug.log:

10 verbose lifecycle [email protected]~lite: CWD: /tf/sbtf/ang2-reg 
11 silly lifecycle [email protected]~lite: Args: [ '-c', 'lite-server' ] 
12 silly lifecycle [email protected]~lite: Returned: code: 1 signal: null 
13 info lifecycle [email protected]~lite: Failed to exec lite script 
14 verbose stack Error: [email protected] lite: `lite-server` 
14 verbose stack Exit status 1 
14 verbose stack  at EventEmitter.<anonymous> 
(/tf/node/lib/node_modules/npm/lib/utils/lifecycle.js:239:16) 
14 verbose stack  at emitTwo (events.js:100:13) 
14 verbose stack  at EventEmitter.emit (events.js:185:7) 
14 verbose stack  at ChildProcess.<anonymous> 
(/tf/node/lib/node_modules/npm/lib/utils/spawn.js:24:14) 
14 verbose stack  at emitTwo (events.js:100:13) 
14 verbose stack  at ChildProcess.emit (events.js:185:7) 
14 verbose stack  at maybeClose (internal/child_process.js:827:16) 
14 verbose stack  at Process.ChildProcess._handle.onexit 
(internal/child_process.js:211:5) 
15 verbose pkgid [email protected] 
16 verbose cwd /tf/sbtf/ang2-reg 
17 error Linux 3.19.0-49-generic 
18 error argv "/tf/node/bin/node" "/tf/node/bin/npm" "run" "lite" 
19 error node v5.6.0 
20 error npm v3.7.2 
21 error code ELIFECYCLE 
22 error [email protected] lite: `lite-server` 
22 error Exit status 1 
+0

Sono in grado di eseguire il trasferimento automatico con questo comando: npm run tsc: w –

+0

Ciò è stato causato dal temuto errore ENOSPC. –

risposta

10

ho avuto lo stesso errore e posso risolverlo in ubuntu con i passi successivi:

Modificare il file /etc/sysctl.conf e aggiungere la riga successiva:

fs.inotify.max_user_watches = 524288 

Salvare il file e digitare:

sudo sysctl -p 

E riprovare a eseguire npm start. :)

+0

Grazie Andres! Funziona benissimo sulla mia installazione Linux-Mint ... –

+0

Funziona anche per me. Grazie! Sono curioso, perché questo ha risolto il problema? –

+0

Questo ha funzionato anche per me. In effetti, ha funzionato anche quando ho specificato 32K invece di 512K. Tuttavia, l'impatto dell'utilizzo di 512 K è davvero solo memoria. Il numero sembra essere basato su questo link: https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers Probabilmente non c'è nulla di magico nel numero stesso. –

1

Se siete alla ricerca di una soluzione l'idea è quella utilizzare la versione 4.x di NodeJS.

Rimuovere NodeJS 5.x

sudo apt-get remove nodejs 

Modifica elenco delle fonti per consentire nodo 4.x nel repository

sudo nano /etc/apt/sources.list.d/nodesource.list 

Poi nel file di modifica entrambi due linee:

deb https://deb.nodesource.com/node_5.x vivid main 
deb-src https://deb.nodesource.com/node_5.x vivid main 

a

deb https://deb.nodesource.com/node_4.x vivid main 
deb-src https://deb.nodesource.com/node_4.x vivid main 

Aggiornare i pronti contro termine di nuovo

sudo apt-get update 

e reinstallare nodo

sudo apt-get install -y nodejs 

Vedi l'versionm che dovrebbe wrtite qualcosa come v4.3.1 o V4.xx

node -v 

Ora è possibile eseguire il quickstart angolare con:

npm start 

Spero che sia utile.

MODIFICA: dopo aver installato la versione 4.x di NodeJS

Nella cartella in cui avete la vostra applicazione:

$ rm -r node_modules 

E poi

npm install 

Sembra stupido, ma quando si esegue NPM installazione ha per compilare alcuni moduli, e forse (Non so) il modo di compilarli cambia con le versioni di NodeJS.

+0

Sfortunatamente, questo non ha funzionato. Avevo già provato questo, ma ho provato di nuovo a vedere se mi mancava qualcosa. Stessi problemi, numeri di linea leggermente diversi dalla "traccia dello stack". –

+0

Sembra ovvio ma, dopo aver installato NodeJS v4.x, hai provato a rimuovere la cartella node_modules e installare di nuovo i moduli? – PablitoAM