2011年8月26日金曜日

Twitter bootstrapでmakeの際エラーが出たのでその原因をメモ。

エラー内容

/Users/user_name/.rvm/gems/ruby-1.9.2-p290/gems/less-2.0.6/lib/less/loader.rb:46:in `error': file 'reset.less' wasn't found. (Less::ParseError)

あれれ、、、reset.lessは存在するのになんでやろ。。。。 と思って、makefileの中身を覗いたところ、どうやらmakefileはnode.jsのless用に書かれているようで 自分の環境の場合rubyのlessが入ってるのが原因だと推測。。。

で、僕の環境だと

/Users/user_name/desktop/bootstrap% which lessc
/Users/user_name/.rvm/gems/ruby-1.9.2-p290/bin/lessc

ってなかんじで、lesscコマンドはrubyの方を参照していたので、makefileでnode.jsの方を参照するように書き直しました。

rubyのlessはアンインストールしようかとも思ったけど、sinatraとか依存してるみたいなので踏みとどまりました。

下記にmakefikeのコードも載せておきます。(node.jsのlessのパスは環境によって違ってくるかと思うので自分のパスを確認して下さい。)

DATE=$(shell DATE)
BOOTSTRAP = ./bootstrap-1.1.0.css
BOOTSTRAP_MIN = ./bootstrap-1.1.0.min.css
BOOTSTRAP_LESS = ./lib/bootstrap.less
LESS_COMPESSOR ?= `which lessc`
WATCHR ?= `which watchr`
#下記の1行を追加
LESS = /opt/local/lib/node_modules/less/bin/lessc

build:
  @@if test ! -z ${LESS_COMPESSOR}; then \
    sed 's/@DATE/'"${DATE}"'/' ${BOOTSTRAP_LESS} >${BOOTSTRAP_LESS}.tmp; \
  #下記の2行を訂正した。
    $(LESS) ${BOOTSTRAP_LESS}.tmp > ${BOOTSTRAP}; \
    $(LESS) ${BOOTSTRAP_LESS}.tmp > ${BOOTSTRAP_MIN} --compress; \
    rm -f ${BOOTSTRAP_LESS}.tmp; \
    echo "Bootstrap successfully built! - `date`"; \
  else \
    echo "You must have the LESS compiler installed in order to build Bootstrap."; \
    echo "You can install it by running: npm install less -g"; \
  fi

watch:
  @@if test ! -z ${WATCHR}; then \
    echo "Watching less files..."; \
    watchr -e "watch('lib/.*\.less') { system 'make' }"; \
  else \
    echo "You must have the watchr installed in order to watch Bootstrap less files."; \
    echo "You can install it by running: gem install watchr"; \
  fi

.PHONY: build watch

これで問題なくmake出来るはず(*´∀`*)ポワワ

ふふふ、最近makefileの書き方を勉強し始めたのですが、早速活用の場が出来て、嬉しくなったので些細なことだけどブログに書いたよ(*´ω`*)

Twitterのbootstrapいいですよね。フォークしたので色々カスタマイズしようと思います。

ではでは

0 件のコメント:

コメントを投稿