Node пакет (Grunt) установлен, но недоступен
Я пытаюсь создать github jquery-ui library с помощью grunt
, но после запуска npm install
я все еще не могу выполнить команду в соответствии с файл readme. Он просто дает No command 'grunt' found
:
[email protected]:~/Documents/projects/ad2/lib/jquery-ui$ grunt build
No command 'grunt' found, did you mean:
Command 'grun' from package 'grun' (universe)
grunt: command not found
[email protected]:~/Documents/projects/ad2/lib/jquery-ui$ npm ls
[email protected] /home/james/Documents/projects/ad2/lib/jquery-ui
├─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ └── [email protected]
├── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ └── [email protected]
└─┬ [email protected]
└── [email protected]
Я смущен, что я пропущу, пожалуйста?
Ответы
Ответ 1
Инструменты командной строки не включены в последнюю версию Grunt (0,4 на момент написания), вместо этого вам нужно установить их отдельно.
Это хорошая идея, потому что это означает, что вы можете иметь разные версии Grunt, работающие в разных проектах, но при этом использовать красивую сжатую команду grunt
для их запуска.
Итак, сначала установите инструменты grunt cli глобально:
npm install -g grunt-cli
(или, возможно, sudo npm install -g grunt-cli
).
Вы можете установить, что работа, набрав grunt --version
Теперь вы можете установить текущую версию Grunt local в свой проект. Итак, из вашего местоположения проекта...
npm install grunt --save-dev
Переключатель save-dev
не является строго необходимым, но является хорошей идеей, поскольку он будет отмечать grunt в разделе package.json devDependencies как только модуль разработки.
Ответ 2
Добавьте /usr/local/share/npm/bin/
в свой $PATH
Ответ 3
Если вы установили пакет Grunt, запустив npm install -g grunt
, и он все еще говорит No command 'grunt' found
или grunt: command not found
, быстрый и грязный способ получить эту работу - это связать двоичные файлы node с вашим $PATH вручную.
В MacOSX/Linux вы можете добавить эту строку в ваш файл ~/.bash_profile
или ~/.bashrc
.
PATH=$PATH:/usr/local/Cellar/node/HEAD/bin # Add NPM binaries
Вероятно, вы должны заменить /usr/local/Cellar/node/HEAD/bin
на путь, где могут быть найдены ваши двоичные файлы node.
Если это быстро и грязно для меня, потому что все должно работать без этого, но по неизвестной причине ссылка кажется сломанной. Поскольку никто из IRC не мог сказать мне, почему это произошло, я нашел свой собственный способ заставить его (хрюкать) работать.
PS: Это должно помочь вам справиться с работой, этот ответ не связан с jquery-ui.
Обновление 02/2013. Вы должны посмотреть @tom-p answer, который лучше объясняет, что происходит. Том дает нам реальное решение вместо взлома файла bashrc: оба должны работать, но следует попробовать сначала установить grunt-cli
.
Ответ 4
В моем случае мне нужно изменить файл /usr/local/bin/grunt в строке 1 (не делайте этого):
#!/usr/bin/env node //remove this line
#!/usr/bin/env nodejs // and put this line to run with nodejs
Отредактировано:
Чтобы избежать проблем, я создал ссылку с именем "node", потому что многие другие программы все еще используют команду "node".
sudo ln -s /usr/bin/nodejs /usr/sbin/node
Ответ 5
В WIN7 мне пришлось вручную добавить путь к папке npm (которая содержит неуловимый файл "grunt" ) в переменную окружения Windows PATH. В моем случае это был C:\Users\mhaagsma\AppData\Roaming\npm
Ответ 6
Есть еще один способ запустить grunt на windows, не добавляя ничего глобально. Это случай, когда вам не нужно ничего делать с помощью% PATH%
если у вас есть grunt и grunt-cli (без ключа -g).
Либо:
npm install grunt-cli
npm install [email protected]
Или имея это в вашем файле package.json, например:
"devDependencies": {
"grunt-cli": "^1.2.0",
"grunt": "^0.4.5",
Вы можете вызвать grunt из локальной установки:
node node_modules\grunt-cli\bin\grunt --version
Это решение для тех, кто по каким-то причинам не хочет или не может играть с PATH, или что-то еще возится с ним все время, например, у агента сборки.
Изменить:
Добавлены версии, когда grunt-cli работает с grunt > 0.3
Ответ 7
Правильный способ установки grunt - запустить эту команду:
npm install grunt -g
(Подготовить "sudo" к приведенной выше команде, если вы получили сообщение об ошибке EACCESS)
-g сделает npm установку пакета глобально, поэтому вы сможете использовать его всякий раз, когда захотите на своем текущем компьютере.
Ответ 8
Иногда вам нужно npm install package_name -g
работать.
Ответ 9
Другое решение - удалить узел ubuntu в моем случае, я использовал:
sudo apt-get remove ruby-bundler
Это сработало для меня.
Ответ 10
В Windows часть тайны, похоже, находится там, где npm устанавливает файл Grunt.cmd. Хотя на моем Linux-я просто должен был запустить sudo npm install -g grunt-cli, на моем рабочем рабочем столе Windows 8, Grunt был помещен в каталог ".npm-global":% USER_HOME% \. Npm-global и я должен был добавить это к Пути.
Итак, в Windows мои шаги были:
-
npm install -g grunt-cli
-
выяснить, где heck grunt.cmd(я думаю, для некоторых это в% USER_HOME%\App_Data\Roaming)
-
Добавлено место для переменной окружения Path. Открыл новую подсказку cmd и команда grunt работала нормально.