npm run-script grunt
を実行した後、奇妙なエラーが発生し、node_modules/.bin/grunt
が失敗したことが通知されます。
私はBackboneにかなり新しいチュートリアルをフォローしています( http://dailyjs.com/2012/11/29/backbone-tutorial-1/ )、
これが私のpackage.json
ファイルです。
{
"name": "btask"
, "version": "0.0.1"
, "private": true
, "dependencies": {
"requirejs": "latest"
, "connect": "2.7.0"
}
, "devDependencies": {
"mocha": "latest"
, "chai": "latest"
, "grunt": "latest"
, "grunt-exec": "latest"
}
, "scripts": {
"grunt": "node_modules/.bin/grunt"
}
}
そして、これがエラーの完全なトランスクリプトです。
0 info it worked if it ends with ok
1 verbose cli [ 'node',
1 verbose cli '/Users/Keva161/.nvm/v0.8.18/bin/npm',
1 verbose cli 'run-script',
1 verbose cli 'grunt' ]
2 info using [email protected]
3 info using [email protected]
4 verbose read json /Users/Keva161/Documents/Web Dev/Webapps/Node/btask/package.json
5 verbose run-script [ 'pregrunt', 'grunt', 'postgrunt' ]
6 info pregrunt [email protected]
7 info grunt [email protected]
8 verbose unsafe-perm in lifecycle true
9 silly exec sh "-c" "node_modules/.bin/grunt"
10 silly sh,-c,node_modules/.bin/grunt,/Users/Keva161/Documents/Web Dev/Webapps/Node/btask spawning
11 info [email protected] Failed to exec grunt script
12 error [email protected] grunt: `node_modules/.bin/grunt`
12 error `sh "-c" "node_modules/.bin/grunt"` failed with 2
13 error Failed at the [email protected] grunt script.
13 error This is most likely a problem with the btask package,
13 error not with npm itself.
13 error Tell the author that this fails on your system:
13 error node_modules/.bin/grunt
13 error You can get their info via:
13 error npm owner ls btask
13 error There is likely additional logging output above.
14 error System Darwin 12.2.1
15 error command "node" "/Users/Keva161/.nvm/v0.8.18/bin/npm" "run-script" "grunt"
16 error cwd /Users/Keva161/Documents/Web Dev/Webapps/Node/btask
17 error node -v v0.8.18
18 error npm -v 1.2.4
19 error code ELIFECYCLE
20 verbose exit [ 1, true ]
あなたが話しているチュートリアルはgrunt0.3を使用しています。それ以来、Gruntは更新されており、package.jsonファイルで "grunt": "latest"を使用すると、デフォルトでgrunt0.4が取得されます。
移行ガイド を実行して、機能させることができます。
チュートリアルでうなり声を上げるために、これを行うことができます-
npm install -g grunt-cli
npm install -g grunt-init
"grunt": "node_modules\\.bin\\grunt"
を"grunt": "grunt"
に変更しますgrunt.registerTask('default', 'exec copy-require');
をgrunt.registerTask('default', ['exec','copy-require']);
に変更しますnpm run-script grunt
を実行します。これで問題なく動作するはずです。R.jsビルドでビルドディレクトリを取得します。
それでも上記の手順でうまく機能しない場合は、package.jsonファイルでgrunt: "latest"
をgrunt : "0.3"
に変更し、シェルでnpm install
を実行できます。
arunkjn の答えは問題を解決します。チュートリアルの意図に従って、作者はgruntをグローバルにインストールしたくありませんでした。これも私が目指していることです。 arunkjnのおかげで、次のこともできると思いました。
npm install grunt-cli
_によってgrunt-cliをローカルにインストールしますgrunt.registerTask('default', 'exec copy-require');
をgrunt.registerTask('default', ['exec','copy-require']);
に変更しますそして、もう一度_npm run-script grunt
_を実行すると、機能するはずです。
私はしばらくの間gruntとnpmを使用していますが、run_script
を使用したことはありません。多分これを試してみませんか?
scripts
の部分は通常、リモートサーバー(HerokuまたはTravisなど)で実行するためのものです。
scripts
ブロックを削除します。
その後、
npm install -g grunt
この後、ターミナルを再起動する必要がある場合があります。
cd myproject
npm install
grunt mytask