12

実行後に奇妙なエラーが発生し、失敗しnpm run-script gruntたことnode_modules/.bin/gruntがわかります。

私はバックボーンにかなり慣れていないため、チュートリアルに従っています(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 npm@1.2.4
3 info using node@v0.8.18
4 verbose read json /Users/Keva161/Documents/Web Dev/Webapps/Node/btask/package.json
5 verbose run-script [ 'pregrunt', 'grunt', 'postgrunt' ]
6 info pregrunt btask@0.0.1
7 info grunt btask@0.0.1
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 btask@0.0.1 Failed to exec grunt script
12 error btask@0.0.1 grunt: `node_modules/.bin/grunt`
12 error `sh "-c" "node_modules/.bin/grunt"` failed with 2
13 error Failed at the btask@0.0.1 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 ]
4

3 に答える 3

22

あなたが話しているチュートリアルでは、grunt 0.3 を使用しています。Grunt はそれ以来更新されており、package.jsonファイルで "grunt": "latest" を使用すると、デフォルトで grunt 0.4 が取得されます。

移行ガイドを実行して、作業を開始できます。

チュートリアルでうなり声を機能させるには、これを行うことができます-

  • grunt-cli をグローバルにインストールするnpm install -g grunt-cli
  • grunt-init をグローバルにインストールするnpm install -g grunt-init
  • grunt をローカルにインストールします (チュートリアルに従っている場合は既にインストールされています)
  • package.jsonを 次のように変更 "grunt": "node_modules\\.bin\\grunt" します"grunt": "grunt"
  • ルート ディレクトリのgrunt.jsの名前を Gruntfile.js に変更します。
  • Gruntfile.jsを 次のように変更 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

于 2013-02-20T09:35:42.747 に答える
2

私はしばらくの間 grunt と npm を使用してきましたが、一度も使用したことがありませんrun_script。多分これを試してみませんか?

このscripts部分は通常、リモート サーバー (つまり、Heroku または Travis) で実行するためのものです。


ブロックを削除しscriptsます。

それからする

npm install -g grunt

この後、ターミナルを再起動する必要がある場合があります。

cd myproject
npm install
grunt mytask
于 2013-02-04T23:25:40.703 に答える