0

次のプリコミットフックがあります。

#!/bin/sh
cd web
bundle exec guard-jasmine

(Gemfileとアプリがそこに設定されているため、webにcdされます)

コミットすると、いくつかの構文エラーが発生します。最初のエラーは次のとおりです。

/Users/myusrname/.rvm/gems/ruby-2.0.0-p0/gems/guard-1.8.0/lib/guard.rb:400:in `require':
/Users/myusrname/.rvm/gems/ruby-2.0.0-p0/gems/guard-jasmine-1.16.0/lib/guard/jasmine.rb:25: odd number list for Hash (SyntaxError)
server:                   :auto,

/Users/myusrname/.rvm/gems/ruby-2.0.0-p0/gems/guard-jasmine-1.16.0/lib/guard/jasmine.rb:25: syntax error, unexpected ':', expecting '}'
server:                   :auto,

bundle exec guard-jasmineguard-jasmineコマンドラインに入力すると正常に実行されます

私が見逃しているものはありますか?

4

2 に答える 2

0

RVM gem パスに ruby​​-2.0.0-p0 が含まれていても、guard-jasmine は Ruby 1.8.7 で実行されているようです。Ruby 1.8 で新しい Ruby 1.9 Hash 構文を使用すると、エラーodd number list for Hash (SyntaxError)がスローされます。

どちらかにする必要があります

  • Git pre-commit-hook が少なくとも Ruby 1.9 を使用していることを確認してください
  • Ruby 1.8 で問題なく動作する Guard::Jasmine バージョン 1.14.0 を使用します。

いずれにしても Ruby 1.8.7 はサポートが終了しているため、pre-commit-hook で RVM を初期化することをお勧めします。

#!/bin/sh
cd web
source "$HOME/.rvm/scripts/rvm"
rvm reload > /dev/null
bundle exec guard-jasmine

これは、デフォルトの Ruby バージョンを設定したことを意味します

$ rvm --default use 1.9.2
于 2013-08-21T19:50:40.647 に答える