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
Ответы
Ответ 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 хрюкает и хрюкает подачу без проблем.