結論から
compass compile scss/style.scss
を実行するディレクトリパスと、コンパイル後のcssを出力するディレクトリパスを合わせた文字列が長すぎるとエラーが出るみたい。
なので、少し短くしたら直った。
実行したコマンド
compass compile scss/style.scss
表示されたエラー
TypeError on line ["43"] of c: no implicit conversion of Array into String
Run with --trace to see the full backtrace
エラーをgoogle翻訳してみる
Cの行["43"]にはTypeError:文字列へのアレイの暗黙的な変換 フルバックトレースを表示するには--traceで実行
エラーをエキサイト翻訳してみる
cのライン[「43」]のTypeError:配列のストリングへの無暗黙の変換 それによって走りなさい--完全なbacktraceを見る跡
config.rbのパス記述
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "../../../../src/branches/general/store/Hogehoge/webroot/assets/css"
sass_dir = "scss"
images_dir = "../../../../src/branches/general/store/Hogehoge/webroot/assets/img"
javascripts_dir = "../../../../src/branches/general/store/Hogehoge/webroot/assets/js"
原因ぽい事と解決策
仕事上都合が良いように、サービスを作っているプロジェクトディレクトリとは全く別のところにconfig.rbとscssを置いて管理し、cssとimgはプロジェクトディレクトリのwebrootに出力する。
ということをやっていたら、上記したようにconfig.rbに書くパスが長くなった。
~/Desktop/all/svn-repos-all/hogehogea/hogehogea/html/aaaaaa_general_template/abcdefghi/assets_src
というディレクトリで
compass compile scss/style.scss
を実行するとエラーが出るけど
~/Desktop/all/svn-repos-all/hogehogea/hogehogea/html/aaaaaa_general_template/abcdefgh/assets_src
というディレクトリでコンパイルのコマンドを実行してもエラーは出なかった。
違いはabcdefghi
だとエラーでabcdefgh
だと大丈夫。
パスが長すぎるということか。
同じく、config.rbの中の
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "../../../../src/branches/general/store/Hogehoge/webroot/assets/css"
sass_dir = "scss"
images_dir = "../../../../src/branches/general/store/Hogehoge/webroot/assets/img"
javascripts_dir = "../../../../src/branches/general/store/Hogehoge/webroot/assets/js"
のところを、パスを短くしてみるとエラーは出ないみたい。
まぁ、相対パスでこんなに長く書くやつもなかなかいないだろうし、gulp使えばこんな事にはなってないんだけど、とにかくハマった。