web-dev-qa-db-fra.com

Yeoman pour Angular, puis "grunt serve" ne démarre pas

C'est la première fois que j'utilise yeoman pour configurer l'échafaudage pour une application AngularJS, et je dois admettre que je suis probablement nouveau dans le monde nodeJS, grunt et bower.

Voici donc ce que j'ai fait jusqu'à présent:

  • Je me suis assuré que yeoman, grunt-cli et les packages du générateur angulaire sont installés

    npm install -g yo grunt-cli bower
    npm install -g generator-angular
    
  • Généré mon application

    yo angular
    

    J'ai aussi essayé:

    yo angular --min-safe
    

Jusqu'à présent, al semble bon. Entre les options proposées, je choisis Twitter Bootstrap one, no angular dependencies, and overwrite my local .gitignore file.).

Après tout ça, j'essaye de lancer mon application:

grunt serve

À ce stade, grunt se plaint qu'il n'est pas installé localement dans le projet, alors je lance:

npm install grunt --save-dev

Non, essayez d'exécuter l'application:

grunt serve

Et c'est là que je suis bloqué:

C:\Projects\what-now>grunt serve
Running "serve" task

Running "clean:server" (clean) task

Running "concurrent:server" (concurrent) task

Running "copy:styles" (copy) task

Done, without errors.
    Warning:
    C:\Projects\what-now\node_modules\grunt-contrib-compass\node_modules\tmp\lib\tmp.js:261
      throw err;
            ^
    TypeError: Cannot read property 'stdout' of undefined
        at compile (C:\Projects\what-now\node_modules\grunt-contrib-compass\tasks\compass.js:37:10)
        at C:\Projects\what-now\node_modules\grunt-contrib-compass\tasks\compass.js:68:7
        at C:\Projects\what-now\node_modules\grunt-contrib-compass\tasks\lib\compass.js:121:11
        at _fileCreated (C:\Projects\what-now\node_modules\grunt-contrib-compass\node_modules\tmp\lib\tmp.js:172:7)
        at C:\Projects\what-now\node_modules\grunt-google-cdn\node_modules\bower\node_modules\rimraf\node_modules\graceful-fs\graceful-fs.js:53:5
        at C:\Projects\what-now\node_modules\grunt-google-cdn\node_modules\bower\node_modules\rimraf\node_modules\graceful-fs\graceful-fs.js:62:5
        at OpenReq.Req.done (C:\Projects\what-now\node_modules\grunt-google-cdn\node_modules\bower\node_modules\fstream\node_modules\graceful-fs\graceful-fs.js:142:5)
        at OpenReq.done (C:\Projects\what-now\node_modules\grunt-google-cdn\node_modules\bower\node_modules\fstream\node_modules\graceful-fs\graceful-fs.js:64:22)
        //... stack trace continues ...

En regardant le code qui explose dans la méthode de compilation de la boussole, ce que je trouve est le suivant:

child.stdout.pipe(process.stdout);

Cela me fait penser que child n'est pas défini pour une raison quelconque, et cette variable provient d'un appel à grunt.util.spawn. C'est là que je suis perdu.

Suis-je en train de manquer une dépendance? Suis-je en train de manquer une configuration?

Info:

  • Système d'exploitation: Windows 8 x64
  • noeud: v0.10.22
33
Alpha

* soupire *, désolé.

Tout ce qu'il m'a fallu c'est d'écrire cette question pour comprendre ensuite que j'avais besoin d'avoir installé Ruby et le joyau de la boussole. Maintenant, cela a du sens: le processus de compilation ne se reproduirait pas.

Après avoir installé Ruby, exécutez:

gem install compass

Et vous devriez être prêt à partir.

EDIT: Après avoir installé Ruby, vous devez vous assurer que le chemin d'accès des fichiers d'exécution Ruby) est ajouté à votre variable PATH. (Merci JagWire!)

57
Alpha

Sur Windows, j'ai eu quelques installations de Ruby:

    C:\Ruby187

et

    C:\Ruby200-x64

installez la boussole aux deux endroits en utilisant:

    gem install compass

cela résout mon problème sur Windows 8 64 bits

4
Cybul

En suivant la même procédure pour Ember, exécutez grunt. Reçu l'erreur "TypeError: Impossible de lire la propriété 'stdout' de non défini." Gem a-t-il installé une boussole (Ruby avait déjà été installé sur mes fenêtres 7 64 bits) même si la boussole était censée être installée plus tôt et cela a fonctionné. Ran grunt et grunt servent sans problème.

2
umbregachoong