インストール後に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]
これらの依存関係の問題を解消するには、findup-syncと他のいくつかのnpmパッケージをインストールしてリンクする必要がありました。私はnpmがそれらを処理するはずでしたが、依存関係を手動でインストールすると問題が解消しました。
npm install findup-sync -g
npm link findup-sync
私は再び実行してgrunt-cliをグローバルに再インストールし、リポジトリに再インストールしました。
npm install -g grunt-cli
cd myrepo
npm install grunt-cli
Yosemiteのインストールでファイルの一部が壊れたと思います...
これは、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を使用しています)。
これは簡単に思えるかもしれませんが、権限の問題があるかどうか他の誰かがわからない場合は、Sudo grunt
次にそこから移動します。
私はこれらのコマンドを使用してGruntを再インストールすることでこれを修正することができました:
Sudo npm remove -g grunt-cli
Sudo npm install -g grunt-cli
これも明らかかもしれませんが、私の場合、ホームディレクトリ(Chromebook上の)からnpmパスを設定しており、.node_modulesを.profileに追加する必要がありました。PATH=~./node_modules:$PATH
次に実行します:source ~/.profile
NVMを使用していて、アクティブノードのバージョンを変更するたびにこの問題が発生していました。
@davidcondreyの提案に続いて私のために働いた。問題は、実際にはgrunt-cli before gruntをインストールすることでした。注文によって違いが生じ、修正されました。
npm i -g grunt-cli grunt
@inostiaのSudoを使用してアクセス許可をテストするという答えは問題ありませんでしたが、後でgitによってすべてのgrunt-processedファイルにアクセスできなくなり、バージョン管理が壊れたため、ファイルのアクセス許可にかなりの頭痛がしました。
この問題は、NodeJS
バージョンを変更した場合に発生します。
ノードのバージョンを変更した後、grunt
またはnpm install
を再インストールすると問題が解決します。