開発環境を別のマシンに移したら sencha の build が通らなくなった
開発環境をまるまる別のマシンに移行しなければならなくなり
結構ハマったので備忘録として初投稿
環境は大雑把に書くと
- Mac OS Yosemite
- rbenv (by Homebrew)
- ruby 2.1.2
- sencha v5.1.0.26
build 実行
build の実行は$ sencha app build
と$sencha app watch -e testing
でしばらく build が進むと下記のエラーで build に失敗する
error XXXX-example.scss (/Users/user/projects/xxxx/public/javascripts/ext/packages/ext-theme-base/sass/utils.rb:30:in `parsebox': can't modify frozen Array)
もしかすると下記の場合もあるかもしれないです
..../rubygems/dependency.rb:298:in 'to_specs': Could not find 'compass' (>= 0) among 14 total gem(s) (Gem::LoadError)
でも旧環境で同じソースの build は問題なく通る。。。
rbenv を入れなおしたら解決したと教えてもらったので
全部消して、何度も rbenv を最初から入れなおして見たけど全然変わらず。。。
いろいろ比較してみた
両方の sencha の debug build log を比較してみたり(15万行以上あった・・)
gem list
の比較をしてみたりしても原因がわからずでしたが、
~/.rbenv の中身を比較してみたら
- 旧環境: git で rbenv をインストール
- 新環境: Homebrew で rbenv をインストール
解決した
git から rbenv をインストールしたら build が通るようになった!
なぜ?と違いを調べていたら「rbenv + ruby-build はどうやって動いているのか」という記事を
書かれている方がいらっしゃいました。
こんなに違うのかー!と勉強不足を痛感しました。。。
何か詳しい原因をご存知の方いらっしゃいましたらご教授を!