2013-09-28 5 views
7

Ho iniziato a leggere "Sviluppo di un AngularJS Edge" e volevo impostare i vari framework in uso.Errore con "line.slice()" su "karma init"

Il libro utilizza nodejs e karma, insieme a numerosi altri framework.

Sono su Win7x32.

Ho appena aggiornato il mio nodojs all'ultimo, v0.10.18.

Ho installato il pacchetto Karma con "npm install -g karma". Questo sembrava completare con successo.

Allora ho fatto funzionare "karma init", che ha fatto questo:

% karma init 
> 
readline.js:507 
    this.line = this.line.slice(this.cursor); 
         ^
TypeError: Cannot call method 'slice' of undefined 
    at Interface._deleteLineLeft (readline.js:507:25) 
    at suggestNextOption (C:\Users\David\AppData\Roaming\npm\node_modules\karma\lib\init.js:167:9) 
    at nextQuestion (C:\Users\David\AppData\Roaming\npm\node_modules\karma\lib\init.js:235:12) 
    at process (C:\Users\David\AppData\Roaming\npm\node_modules\karma\lib\init.js:250:10) 
    at Object.exports.init (C:\Users\David\AppData\Roaming\npm\node_modules\karma\lib\init.js:352:6) 
    at Object.<anonymous> (C:\Users\David\AppData\Roaming\npm\node_modules\karma\bin\karma:25:37) 
    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) 

Si noti che questo errore è praticamente identica alla traccia dello stack riportato da this person un mese fa, ma tale relazione non ha ricevuto alcuna risposta.

+0

Impossibile riprodurre con il nodo 0.10.18, karma 0.10.2 su Windows 7 Ultimate (sia a 32 che a 64 bit) – SheetJS

+0

Sono disponibili ulteriori strumenti diagnostici che potrebbero fornire informazioni più significative? –

+0

Hai installato utilizzando il pacchetto da nodejs.org? – SheetJS

risposta

2

Il motivo dell'errore durante l'esecuzione di npm in Cygwin sembra essere un problema noto con npm. È possibile utilizzare il lavoro intorno menzionato qui,

https://stackoverflow.com/a/22436199/2390020

+0

Sì, ho dimenticato questa domanda. Ho scoperto questa soluzione alternativa un po 'di tempo fa. –

0

Un altro punto importante che non ho menzionato è che stavo eseguendo questi comandi da una finestra rxvt di Cygwin.

Ho appena provato a disinstallare completamente il nodo e reinstallarlo.

Quando ho portato la finestra rxvt di nuovo e corse "NPM installare il karma-g", non è riuscito con il seguente:

/c/Program Files/nodejs/npm: line 2: $'\r': command not found 
/c/Program Files/nodejs/npm: line 4: $'\r': command not found 
/c/Program Files/nodejs/npm: line 5: syntax error near unexpected token `$'in\r'' 
'c/Program Files/nodejs/npm: line 5: `case `uname` in 

che mi ha portato a cercare tale errore sul web, e ho trovato questo thread, il che implica che semplicemente non supporta Cygwin (sfortunato, ma non un grosso problema).

Quando ho alzato una finestra "cmd" semplice, brutta, ostile, l'installazione del karma e "karma init" sono state completate con successo (o almeno mi hanno dato la prima domanda nel processo "init").

1

ho ottenuto lo stesso errore con MINGW64.

Viene eseguito correttamente al prompt dei comandi predefinito.

0

Nel mio caso, il problema era che stavo usando il terminale git bash in windows. Quando ho eseguito il comando in una finestra di cmd, ha funzionato correttamente.

5

Probabilmente stai usando il terminale Git Bash, MinTTY, che non ha il pieno supporto per TTY.

Hai 4 opzioni per risolvere il problema:

  1. terminale Utilizzare CMD con il (la console di Windows di default) shell di Windows
  2. terminale
  3. Utilizzare CMD con la shell Bash (eseguire "C:\Program Files\Git\bin\bash.exe" --login -i in terminale cmd)
  4. Utilizzare Powershell (un terminale alternativo generalmente installato di default in ambiente Windows)
  5. Utilizzare un altro te rminal (o sviluppare uno nuovo: stuck_out_tongue_winking_eye:)

Se avete solo bisogno di eseguire comandi interattivi isolate come karma init, vi consiglio l'opzione 1 per esso e poi tornare a Git Bash. Comunque darei una possibilità a Powershell.

+1

Ho fatto l'opzione 1. grazie – LapelCard

0

Eseguire il comando nella finestra di comando della shell di github. Ha funzionato per me

Problemi correlati