2016-05-12 17 views
5

Ich versuche, den Generator Generatos, den Generator-Generator zu verwenden, und ich bin mit einem Fehler konfrontiert.Fehler "unbehandelt" Fehler "Ereignis" nach dem Ausführen yo Generator

[email protected]:~/Documents$ yo generator 
? Your generator name (generator-documents) 

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

TypeError: this.env.adapter.prompt(...).then is not a function 
    at Base.prompt (/home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/node_modules/yeoman-generator/lib/base.js:232:45) 
    at askName (/home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/node_modules/inquirer-npm-name/lib/index.js:25:19) 
    at module.exports.generators.Base.extend.prompting (/home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/app/index.js:21:12) 
    at Object.<anonymous> (/home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/node_modules/yeoman-generator/lib/base.js:431:23) 
    at /home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/node_modules/run-async/index.js:26:25 
    at /home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/node_modules/run-async/index.js:25:19 
    at /home/henrique/.nvm/versions/node/v5.8.0/lib/node_modules/generator-generator/node_modules/yeoman-generator/lib/base.js:432:9 
    at processImmediate [as _immediateCallback] (timers.js:383:17) 

Versionen:

[email protected]:~/Documents$ node -v 
v5.8.0 
[email protected]:~/Documents$ npm -version 
3.8.9 

I npm Cache sauber und npm installieren -g yo/Yeoman-Generator/Generator-Generator bereits haben. Bereits neu installierter Knoten und npm.

Vielen Dank für Ihre Zeit :)

Antwort

10

Sie müssen yo auf die neueste Version aktualisieren.

npm -g update yo

Und wenn das nicht funktioniert, dann wollen Sie:

npm -g uninstall yo 
npm -g install yo 
+0

weder für mich gearbeitet .. meine Node-Umgebung wird von NVM verwaltet. Derzeit verwende ich Knoten v6.2.0 – Chandru

+0

@Chandru klingt für mich, wie Sie zwei npm installiert haben. 'which yo' und running' DEBUG = yeoman: * yo' gibt dir mehr Informationen darüber, welche Pfade benutzt werden. –

+0

ja. Du hast recht. Ich hatte mehrere Npms und der Pfad, den ich installiert habe, war anders als mein aktueller NPM-Pfad. Also musste ich zur vorherigen Version des Knotens wechseln und weiterhin Generatorbefehle verwenden. – Chandru

1

ich ähnliches Problem hatte. Die Aktualisierung oder Neuinstallation von yo hat mir jedoch nicht geholfen.

Meine Knotenumgebung wird von nvm verwaltet, wo ich derzeit Knoten v6.2.0 verwende. Allerdings wurde yo lange auf meinem PC installiert, während ich Knoten v4.4.1 benutzte. Als ich v4.4.1 verwendet habe, habe ich den Fehler nicht erhalten.

Also Schlussfolgerung ist, dass die yo angular-fullstack Befehle in der gleichen Knotenversion arbeiten, in der es installiert wurde. Da nvm beim Wechseln zwischen Knotenversionen praktisch ist, ist es für mich keine große Sache. Ich benutze v4.4.1 nur, wenn ich einige eckige Komponenten erzeuge und auf die neueste Version zurückwechsle.

+0

das ist gut gelaufen! –

0

Ich hatte dieses Problem auch. Ich verwende auch nvm, um meine Knotenversionen zu verwalten.

In meinem Fall eine Kombination aus npm dedupe -g, npm update -g yo, npm uninstall -g yo und npm install -g yo haben den Trick. Ich re-ran auch npm link von meinem Generator, da es ein lokaler Generator ist. Ich denke, wenn es ein Generator ist, den Sie von Npm installiert haben, npm uninstall -g <generator-name> gefolgt von `npm installieren -g würde den gleichen Zweck dienen.

Irgendwann begann der Generator wieder zu arbeiten, aber ich merkte nicht genau wann, weil ich den Generator als Teil meiner Unit-Tests lief.

Schließlich erkannte ich, dass der Generator funktionierte, wenn ich es von der Befehlszeile ausgeführt wurde, aber nicht, wenn ich es aus meinen Testdateien ausführte.

An diesem Punkt hat die Aktualisierung yeoman's test helpers (npm update yeoman-test) von 1.1.0 bis 1.4.0 den Trick gemacht.