0

ホスティングプロバイダーを移動し、ruby と middleman を再インストールしました。

実行すると、次のようbundle exe middleman serverになります。

/var/lib/gems/1.8/gems/haml-4.0.4/lib/haml/parser.rb:86: 警告: 正規表現の間隔が無効です /var/lib/gems/1.8/gems/middleman-s3_sync-3.0. 21/lib/middleman-s3_sync.rb:2:in require': /var/lib/gems/1.8/gems/middleman-s3_sync-3.0.21/lib/middleman/s3_sync.rb:54: syntax error, unexpected ':', expecting ')' (SyntaxError) @progress_bar ||= ProgressBar.create(total: paths.length) ^ /var/lib/gems/1.8/gems/middleman-s3_sync-3.0.21/lib/middleman/s3_sync.rb:54: syntax error, unexpected ')', expecting kEND /var/lib/gems/1.8/gems/middleman-s3_sync-3.0.21/lib/middleman/s3_sync.rb:67: syntax error, unexpected '.', expecting kEND ... .reject { |p| File.directory?(p... ^ /var/lib/gems/1.8/gems/middleman-s3_sync-3.0.21/lib/middleman/s3_sync.rb:137: syntax error, unexpected $end, expecting kEND from /var/lib/gems/1.8/gems/middleman-s3_sync-3.0.21/lib/middleman-s3_sync.rb:2 from /var/lib/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:inrequire' from /var/lib/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in require' from /var/lib/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:ineach' from /var/ lib/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in require' from /var/lib/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:ineach' from /var/lib/gems/1.8/gems/bundler-1.3.5/lib/bundler/runtime .rb:59: in require' from /var/lib/gems/1.8/gems/bundler-1.3.5/lib/bundler.rb:132:inrequire' from /var/lib/gems/1.8/gems/middleman-core-3.2.0/lib/middleman-core/load_paths.rb:38 : in setup_load_paths' from /var/lib/gems/1.8/gems/middleman-core-3.2.0/bin/middleman:10 from /usr/local/bin/middleman:19:inload' from /usr/local/bin /仲買人:19

私の Ruby の知識は非常に乏しいのですが、コードを見ても構文エラーは見当たりません。s3_sync git ハブ コードを確認しましたが、コードのこの部分はしばらく変更されていません。これはエンコーディングの問題だと思いますが、修正しようとして少し行き詰まっています。あなたが当てることができるどんな光も非常に役に立ちます。

追加情報: Ruby 1.8 と 1.9.3 で試しました。そして、これはUbuntu 12.04にあります。

4

1 に答える 1

1

SyntaxError は、Middleman 内でこれについて不平を言っているようです:

ProgressBar.create(total: paths.length)

パスは、/var/lib/gems/1.8/Ruby 1.8.X を使用していることを示しています。しかし、JavaScript スタイルのハッシュ表記は次のようになります。

total: paths.length

1.8 では動作しません:total => paths.length。そこでの表記を使用する必要があります。そのバージョンの Middleman を 1.8.7 で使用できないようです。1.9.3+ にアップグレードするか、Middleman を古い Ruby で動作するものにダウングレードしてください。

于 2013-11-13T00:00:06.407 に答える