Spica*

プログラミングの話。

express-generatorをforkして、ECT使えるようにした

ECTっていうのは、テンプレートエンジンの一つです。

ECT - Fastest JavaScript template engine with CoffeeScript syntax

このECT、テンプレートの継承が便利で、かつjadeのような特殊文法さが少ないので学習コストが低いのが特徴です。文法はejsに似てますが、若干違います。 実行速度も速いらしく、しばらくexpressと連携して使ってみたいなと思いまして、簡単に使えるようにしてみました。

インストール

npm uninstall -g express-generator
npm install -g esperia/generator

後者のコマンドを入力すると、僕がforkしたリポジトリ(esperia/generator)の方からダウンロード・インストールを行なってくれるようになってます。 一応ejsの方を参考にテストを書きまして、passしました。

使い方

express --ectで、現在のカレントディレクトリにプロジェクトを作製できます。

$ express --ect

   create : .
   create : ./package.json
   create : ./app.js
   create : ./public
   create : ./public/javascripts
   create : ./public/images
   create : ./public/stylesheets
   create : ./public/stylesheets/style.css
   create : ./routes
   create : ./routes/index.js
   create : ./routes/users.js
   create : ./views
   create : ./views/index.ect
   create : ./views/layout.ect
   create : ./views/error.ect
   create : ./bin
   create : ./bin/www

   install dependencies:
     $ cd . && npm install

   run the app:
     $ DEBUG=gen:* npm start

デフォルトに戻す場合

npm uninstall -g express-generator
npm install -g express-generator

参考

上記記事の内容を、コマンドでgenerateできるようにした感じです。(layout.ectとかは参考にしてないので多分記述違うだろうなあ…)

ECT出てからわりと経つのに、express-generatorモジュールに反映されてないの、多分理由があるんだと思ってる…。 PR投げてもいいけど、コミット整理するのめんどい(´・ω・`)

追記

言い忘れてた…。僕が改造したrepoですが、ちょっと気に食わなかったところ改造してます…。

  • publicディレクトリ内のディレクトリ名変更
    • javascripts -> js
    • stylesheets -> css
    • images -> img
  • テンプレート内の、HTMLの属性を囲むシングルクォートを、ダブルクォートに変更

細かいことなんですけどね…。

(2015-08-11追記: 上記独自仕様やめました。compassとかにも影響が出ることがわかったので…)