Що викликає цю помилку - "Фатальна помилка: Неможливо знайти локальний грунт"


370

Спочатку я видалив стару версію grunt, потім встановив нову версію grunt, а потім отримав цю помилку:

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

Фатальна помилка: не вдається знайти локальний грунт.

Якщо ви бачите це повідомлення, або Gruntfile не знайдено, або грунт не встановлено локально для вашого проекту. Щоб отримати додаткові відомості про встановлення та налаштування 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!
poshaughnessy

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

Це має працювати.

Рішення для версії 1.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). Сьогодні я її unallalled і встановити новий grunt (v0.4) під назвою Grunt-CLI.що щось змінилося ..
Ryan Yiada

29
Наразі npm install gruntвстановлюється grunt 0.3.x. Вам потрібно буде виконати `npm install grunt@0.4 ', перейти на локальну версію, яка потрібна для grunt-cli
Jack

6
Я хочу, щоб кроки встановлення Grunt стосувалися @ 0.4. Справді виламував руки, намагаючись розібратися в цьому, поки я не знайшов твій коментар.
cnp

2
npm install grunt --save-devзробив це для мене
Вініцій Пінто

6
grunt-cliмає бути встановлено у всьому світі, але він очікує, що grunt.jsу вашому проекті буде локальна установка . Це дозволяє кожному проекту використовувати іншу версію грунту. Зазвичай я використовую npm з файлом package.json, щоб встановити grunt.js всі інші контрибутори та ін.
Генрі

164

Встановіть Grunt в node_modules, а не в усьому світі

Unable to find local Grunt ймовірно, означає, що ви встановили Grunt у всьому світі.

CLT Grunt наполягає на встановленні grunt у вашому локальному каталозі node_modules, тому Grunt є локальним для вашого проекту.

Це не вдасться:

npm install -g grunt

Зробіть це замість цього:

npm install grunt --save-dev

83

Зробіть

npm install

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


4
Я зробив цю причину, як дурень, я забув виконати цю команду після того, як витягнув новий репо-проект нового mac до mac .....: /
neoswf

1
Як це можливо, грунт потрібно встановити локально, оскільки інструмент командного рядка завжди може бути розташований у всьому світі?
Майк М

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 насправді вказують, що у вас є файл з ім’ям Gruntfile.js(замість старого grunt.js).

Ви повинні встановити grunt-cliінструмент глобально (це робиться через npm install -g grunt-cli). Це дозволяє фактично запускати gruntкоманди з командного рядка.

По-друге, переконайтеся, що ви локально встановили грунт для свого проекту. Якщо ви бачите, що у вас package.jsonнемає чогось подібного, "grunt": "0.4.5"тоді ви повинні зробити це npm install grunt --saveу своєму каталозі проектів.


3

Мені довелося виконати наступні команди на ubuntu, щоб вирішити цю проблему (я знаю, що бурчав протягом 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

Ніщо з вищезгаданого не працювало для мене, тому що я вперто встановив грунт (рекомендується в кількох з цих відповідей, як не дивно), і це зіпсувало все. Ось що зробило:

npm uninstall -g grunt
npm install

Лише зараз для мене був встановлений і корисний для мене місцевий грунт.


0

Будучи новим у грунті та налаштовуючи його, я запускаю (можливо, нерозумно) мій грунт-проект / папку з Диска Google, щоб я міг отримати доступ до того ж коду / версії з мого ноутбука чи робочої станції.

Існує неабияка синхронізація папок nodes_modules назад на Google Диск, і, здавалося, в якийсь момент виник конфлікт, і папку / nodes_modules / grunt перейменовано на / nodes_modules / grunt (1)

Перейменування його назад, видаливши (1), здавалося, виправили це для мене.


Чому ви не використовуєте GIT?
hmrc87

Я не хотів відслідковувати зміни / версії і намагався не підтримувати дві окремі встановлення grunt, але вищевказаний сценарій був досить проблематичним, тому я все-таки перейшов до github.
LJT


0

У мене був такий самий випуск у Вагранта.

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

sudo npm install -g grunt-cli

Це працювало для мене.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.