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

Не удается найти модуль "findup-sync" при попытке запустить grunt

У меня проблемы с запуском grunt-cli после его установки. Я бегу

npm install -g grunt-cli

затем запускаем грубые ошибки с помощью

    node.js:63
    throw e;
    ^
Error: Cannot find module 'findup-sync'
    at loadModule (node.js:275:15)
    at require (node.js:411:14)
    at Object.<anonymous> (/home/tmartin/bin/grunt:9:14)
    at Module._compile (node.js:462:23)
    at Module._loadScriptSync (node.js:469:10)
    at Module.loadSync (node.js:338:12)
    at Object.runMain (node.js:522:24)
    at Array.<anonymous> (node.js:756:12)
    at EventEmitter._tickCallback (node.js:55:22)
    at node.js:773:9

Это то, что я установил:

[email protected]:~$ npm list -g
/home/tmartin/lib
└─┬ [email protected]
  ├─┬ [email protected]
  │ ├─┬ [email protected]
  │ │ ├── [email protected]
  │ │ ├── [email protected]
  │ │ └─┬ [email protected]
  │ │   ├── [email protected]
  │ │   └── [email protected]
  │ └── [email protected]
  └─┬ [email protected]
    └── [email protected]
4b9b3361

Ответ 1

Мне пришлось установить и связать findup-sync и несколько других пакетов npm, чтобы убрать эти проблемы с зависимостями. Я, хотя npm должен был обрабатывать их для нас, но установка зависимостей вручную заставила проблемы уйти.

npm install findup-sync -g

npm link findup-sync

Ответ 2

У меня снова запущен переустановить grunt-cli во всем мире и в моем репо.

npm install -g grunt-cli

cd myrepo

npm install grunt-cli

Я думаю, что установка Yosemite сломала некоторые вещи в моих файлах...

Ответ 3

Это связано с тем, что npm не устанавливает права на подкаталог node_modules в /usr/lib/ node_modules/grunt-cli. В моем случае у меня было:

drwxr-x--- 6 nobody root 4096 16 févr. 17:08 node_modules

При запуске grunt в качестве пользователя без полномочий root я имел ту же ошибку (не могу найти модуль "findup-sync" ) из-за разрешения, запрещенного для чтения этого каталога.

Решение состоит в том, чтобы зафиксировать разрешение с помощью chmod: chmod a + rx node_modules.

Но на самом деле все каталоги были задействованы. Лучший способ - todo:

find /usr/lib/node_modules/grunt-cli -type d -exec chmod a+rx {} \;

Это может быть ошибка распространения (я использую Archlinux).

Ответ 4

Это может показаться простым, но если кто-либо еще не знает, есть ли проблема с разрешениями, попробуйте запустить sudo grunt, а затем оттуда.

Ответ 5

Это также может быть очевидным, но в моем случае я настроил свой путь npm вне моего домашнего каталога (на chromebook) и мне нужно было добавить .node_modules в мой .profile
PATH=~./node_modules:$PATH
Затем запустите:
source ~/.profile

Ответ 6

Мне удалось это исправить, переустановив Grunt с помощью следующих команд:

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

Ответ 7

Эта проблема возникает при изменении вашей версии NodeJS.

После изменения версии узла переустановка grunt или npm install решит проблему.