Что вызывает эту ошибку - «Неустранимая ошибка: невозможно найти локальное ворчание»


370

Сначала я удалил старую версию grunt, затем установил новую версию grunt, и затем я получил эту ошибку:

D: \ www \ grunt-test \ grunt grunt-cli: интерфейс командной строки grunt. (V0.1.4)

Неустранимая ошибка: невозможно найти локальное ворчание.

Если вы видите это сообщение, либо Gruntfile не найден, либо grunt не был установлен локально для вашего проекта. Для получения дополнительной информации об установке и настройке grunt см. Руководство по началу работы: http://gruntjs.com/getting-started

Это потому, что в моем системном пути нет ссылки на хрюканье? Или что-то другое? Я пытался переустановить его уже несколько раз.


6
Вы установили глобально? npm install grunt -g
elclanrs

1
у вас есть Gruntfile.jsв основе вашего проекта?
Саймон Будриас

6
@Garreh Уже давно, но попробуй npm install grunt --save-devс терминала. Это должно добавить последнюю версию к вашему package.json.
Ромен

233
К сожалению, это было с недавно проверенным проектом. Просто нужно было сделать npm install!
пошагнесси

6
nmp install - устанавливает зависимости в локальную папку node_modules.
бедва

Ответы:


291

Я думаю, что у вас нет grunt.jsфайла в каталоге вашего проекта. Используйте grunt:init, что дает вам такие варианты, как jQuery, node,commonjs. Выберите то, что вы хотите, а затем продолжить. Это действительно работает. Для получения дополнительной информации вы можете посетить это .

Сделай это:

 1. npm install -g grunt
 2. grunt:init  ( you will get following options ):
      jquery: A jQuery plugin
      node: A Node module
      commonjs: A CommonJS module
      gruntplugin: A Grunt plugin
      gruntfile: A Gruntfile (grunt.js)
 3 .grunt init:jquery (if you want to create a jQuery related project.).

Он должен работать.

Решение для v1.4:

1. npm install -g grunt-cli
2. npm init
   fill all details and it will create a package.json file.
3. npm install grunt (for grunt dependencies.)

Редактировать: Обновленное решение для новых версий:

 npm install grunt --save-dev

2
Эта версия должна быть старой (v0.3). Сегодня я удалил ее и установил новый grunt (v0.4) под названием Grunt-CLI. Что-то изменилось ..
Райан Иада

29
В настоящее время npm install gruntустанавливает grunt 0.3.x. Вам нужно будет выполнить `npm install grunt@0.4 'и установить локальную версию grunt, необходимую для grunt-cli
Jack

6
Я хотел бы, чтобы шаги установки Grunt касались @ 0.4. Я действительно пытался понять это, пока не нашел ваш комментарий.
cnp

2
npm install grunt --save-devсделал это для меня
Виниций Пинто

6
grunt-cliдолжен быть установлен глобально, но он ожидает, что у вас будет локальная установка grunt.jsв вашем проекте. Это позволяет каждому проекту использовать разные версии grunt. Обычно я использую npm с файлом package.json, чтобы установить grunt.js для всех остальных ссылок на grunt и т. Д.
Генри

164

Установите Grunt в node_modules, а не глобально

Unable to find local Grunt вероятно означает, что вы установили Grunt во всем мире.

CLI Grunt настаивает на том, чтобы вы установили grunt в локальный каталог node_modules, поэтому Grunt является локальным для вашего проекта.

Это не удастся:

npm install -g grunt

Сделайте это вместо этого:

npm install grunt --save-dev

83

Делать

npm install

установить Grunt локально ./node_modules(и все остальное, что указано в package.jsonфайле)


4
Я сделал это, как дурак, я забыл запустить эту команду после того, как вытащил репо нового свежего проекта в mac .....: /
neoswf

1
Почему grunt нужно устанавливать локально, поскольку инструмент командной строки всегда можно найти по всему миру?
Майк М,

1
@MikeM иногда у вас есть node_modules/.binв вашем PATH. Также локальные и глобальные версии могут быть разными.
Клас Меллборн

В моем случае это была вина NetBeans. Иногда он ломает мои проекты, когда я работаю git stashво внешнем инструменте, здесь он удаляет некоторые модули node_modulesи все перестало работать (и раньше работало нормально). После того, как npm installэто снова работает хорошо.
Wirone

26

Если у вас уже есть файл package.jsonв проекте, и он содержится gruntв зависимости,

  "devDependencies": {
    "grunt": "~0.4.0",

Затем вы можете запустить, npm installчтобы решить проблему


5

Я сделал ошибку, установив некоторые пакеты с использованием sudo и других без прав, это решило мою проблему.

sudo chown -R $(whoami) $HOME/.npm

надеюсь, это поможет кому-то.


5

Он говорит, что у вас нет местного, gruntпоэтому попробуйте:

npm install grunt

(без -gместного grunt)

Хотя это и не связано напрямую, убедитесь, что у вас есть Gruntfile.jsв текущей папке.


4

Здесь может быть несколько проблем в зависимости от того, какая версия grunt используется. Более новые версии grunt фактически указывают, что у вас есть файл с именем Gruntfile.js(вместо старого grunt.js).

У вас должен быть grunt-cliинструмент, установленный глобально (это делается через npm install -g grunt-cli). Это позволяет вам фактически запускать gruntкоманды из командной строки.

Во-вторых, убедитесь, что вы установили grunt локально для своего проекта. Если вы видите, что у вас package.jsonнет чего-то подобного, "grunt": "0.4.5"то вам следует сделать это npm install grunt --saveв каталоге вашего проекта.


3

Мне пришлось выполнить следующие команды в Ubuntu, чтобы решить эту проблему (я знаю grunt в течение 1 часа):

sudo npm install -g grunt
sudo npm install -g grunt-cli

cd /usr/local/bin
# current symlink points to ../lib/node_modules/grunt/bin/grunt*
sudo rm /usr/local/bin/grunt
sudo ln -s ../lib/node_modules/grunt-cli/bin/grunt* grunt

Это грязно, но это единственное решение, которое я нашел ... :(


2

Ничто из вышеперечисленного не помогло мне, потому что я установил grunt во всем мире (как ни странно, рекомендуется в нескольких из этих ответов), и это все испортило. Вот что сработало:

npm uninstall -g grunt
npm install

Только теперь для меня было установлено и применимо местное ворчание.


0

Будучи новичком в grunt и настройке, я запускаю (возможно, по глупости) свой grunt проект / папку с Google Drive, чтобы я мог получить доступ к одному и тому же коду / сборкам с моего ноутбука или рабочей станции.

Синхронизация папок node_modules обратно с Google Drive довольно частая, и в какой-то момент возник конфликт, и папка / node_modules / grunt была переименована в / node_modules / grunt (1).

Переименование его обратно, удалив (1), казалось, исправило это для меня.


Почему вы не используете GIT?
hmrc87

Я не хотел отслеживать изменения версий и пытался не поддерживать две отдельные установки, но описанный выше сценарий был довольно проблематичным, поэтому я все равно перешел на github.
LJT


0

У меня была такая же проблема в Vagrant.

Я использовал sudo для запуска команды установки.

sudo npm install -g grunt-cli

Это сработало для меня.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.