Подтвердить что ты не робот

Yeoman для Angular, тогда "grunt serve" не запустится

Это первый раз, когда я использую yoman для настройки лесов для приложения AngularJS, и я должен признать, что я, скорее всего, новичок в мире nodeJS, grunt и bower.

Итак, вот что я сделал до сих пор:

  • Я убедился, что установлены пакеты yoman, grunt-cli и angular -генератора

    npm install -g yo grunt-cli bower
    npm install -g generator-angular
    
  • Сгенерировано приложение

    yo angular
    

    Я также пробовал:

    yo angular --min-safe
    

Пока все хорошо. Между предоставленными опциями я выбираю однозадачное загрузочное окно Twitter, без angular и перезаписывать локальный файл .gitignore.

После всего этого я пытаюсь запустить приложение:

grunt serve

На этом этапе grunt жалуется, что он не локально установлен в проект, поэтому я запускаю:

npm install grunt --save-dev

Нет, попробуйте запустить приложение:

grunt serve

И здесь я блокируюсь:

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 ...

Взглянув на код, который взрывается в компиляционном методе компаса, я нахожу следующее:

child.stdout.pipe(process.stdout);

Это заставляет меня думать, что child есть undefined по какой-то причине, и эта переменная происходит от вызова grunt.util.spawn. Вот где я в недоумении.

Мне не хватает какой-либо зависимости? Мне не хватает какой-либо конфигурации?

информация:

  • ОС: Windows 8 x64
  • node: v0.10.22
4b9b3361

Ответ 1

* вздыхает *, извините.

Все, что мне потребовалось, это написать этот вопрос, чтобы потом выяснить, что мне нужно установить Ruby и драгоценный камень компаса. Теперь это имеет смысл: процесс компиляции не будет появляться.

После установки Ruby запустите:

gem install compass

И вам должно быть хорошо идти.

РЕДАКТИРОВАТЬ: После установки Ruby вам необходимо убедиться, что путь к файлам Ruby runtime добавлен в вашу переменную PATH. (Спасибо JagWire!)

Ответ 2

В окнах у меня было несколько установок ruby:

    C:\ruby187

и

    C:\Ruby200-x64

установить компас в обоих местах, используя:

    gem install compass

это разрешит мою проблему в Windows 8 64bit

Ответ 3

Следуя той же процедуре для Ember, запустите grunt. Получил ошибку "TypeError: Не удается прочитать свойство" stdout "из undefined". Установил ли gem compass (рубин уже был установлен на моем Windows 7 64 бит), хотя компас должен был быть установлен раньше, и это сработало. Ran хрюкает и хрюкает подачу без проблем.