Tower.js 使ってみたら、まさかの起動でハマったでござる

タイトルどおりです。解決済み。
ちなみに2013-03-03時点での情報です。

環境

  • node v0.8.9
  • npm v1.1.61

発生したエラー

これとおんなじ感じ https://github.com/viatropos/tower/issues/388

tower new test-app && cd test-appした後にnpm installを実行し、cake buildしたのですが、Gruntタスクで落ちます。 出力されているエラーは明らかにGrunt@0.4.xに対応していないタスクで見られるアレ。

ねちょこちょと対処していたら解決したので書きます。
とはいえnpm install gruntで0.4系が入る時代なんだから、いい加減対応を…ねぇ…。

対処方法

gruntを0.3系に戻す必要があります。

nvmなどでnpmの環境を切り替えられる人はTower.js専用の環境を作っておいたほうが幸せなような。

> npm uninstall -g grunt-cli
> npm install -g grunt@0.3.x

続いて作成された依存パッケージのバージョンを変更します。
具体的にはgrunt-contrib, grunt-contrib-less, grunt-contrib-stylusのバージョンを以下のように変更します。

// package.json
  "devDependencies": {
    (省略)
    "grunt-contrib-less": "~0.3.2",
    "grunt-contrib-stylus": "~0.3.1",
    "grunt-contrib": "~0.3.0",
    (省略)
  }

必要に応じてインストールしなおしてください。

> npm uninstall grunt-contrib grunt-contrib-less grunt-contrib-stylus
> npm install

これで動作するようになったはずです。 以下のコマンドでビルドできるか確認しましょう。

> cake build

結論

Tower.jsをgrunt@0.4.x対応させるためにみんなでプルリクエストしましょう。
(tower/packages/tower-tasks/tasksあたり)