web-dev-qa-db-ja.com

gruntを実行しようとしたときにモジュール「findup-sync」が見つかりません

インストール後に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

これは私がインストールしたものです:

tmartin@timcomp:~$ 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]
32
Tim Martin

これらの依存関係の問題を解消するには、findup-syncと他のいくつかのnpmパッケージをインストールしてリンクする必要がありました。私はnpmがそれらを処理するはずでしたが、依存関係を手動でインストールすると問題が解消しました。

npm install findup-sync -g

npm link findup-sync

11
Matthew Fotzler

私は再び実行してgrunt-cliをグローバルに再インストールし、リポジトリに再インストールしました。

npm install -g grunt-cli

cd myrepo

npm install grunt-cli

Yosemiteのインストールでファイルの一部が壊れたと思います...

10

これは、npmが/ usr/lib/node_modules/grunt-cliのサブディレクトリnode_modulesに適切な権限を設定していないためです。私の場合、私は持っていました:

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

Root以外のユーザーとしてgruntを実行すると、このディレクトリの読み取りが拒否されたため、同じエラー(モジュール 'findup-sync'が見つかりません)が発生しました。

解決策は、chmodで許可を修正することです:chmod a + rx node_modules。

しかし、実際には、すべてのディレクトリが関係していました。最善の方法はtodoすることでした:

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

これはおそらくディストリビューションのバグです(私はArchlinuxを使用しています)。

3
Syn

これは簡単に思えるかもしれませんが、権限の問題があるかどうか他の誰かがわからない場合は、Sudo grunt次にそこから移動します。

2
inostia

私はこれらのコマンドを使用してGruntを再インストールすることでこれを修正することができました:

Sudo npm remove -g grunt-cli
Sudo npm install -g grunt-cli
1
aimadnet

これも明らかかもしれませんが、私の場合、ホームディレクトリ(Chromebook上の)からnpmパスを設定しており、.node_modulesを.profileに追加する必要がありました。
PATH=~./node_modules:$PATH
次に実行します:
source ~/.profile

1
rwreed

NVMを使用していて、アクティブノードのバージョンを変更するたびにこの問題が発生していました。

@davidcondreyの提案に続いて私のために働いた。問題は、実際にはgrunt-cli before gruntをインストールすることでした。注文によって違いが生じ、修正されました。

npm i -g grunt-cli grunt

@inostiaのSudoを使用してアクセス許可をテストするという答えは問題ありませんでしたが、後でgitによってすべてのgrunt-processedファイルにアクセスできなくなり、バージョン管理が壊れたため、ファイルのアクセス許可にかなりの頭痛がしました。

0
tuliomir

この問題は、NodeJSバージョンを変更した場合に発生します。

ノードのバージョンを変更した後、gruntまたはnpm installを再インストールすると問題が解決します。

0
Gangadhar JANNU