Node + Express + EJS で実行環境に応じて出力を変えるには

July 21, 2012

クライアントの JavaScript をRAWコードと圧縮版の指定を切り替えたいのが目的です。
単純に min.js だったら .js に置換するように、Nginx などの Rewrite を使うこともできると思ったんですが、複数のファイルを一つに圧縮しているため、それだけでは満たせませんでした。

ということで、EJS に NODE_ENV に相当するフラグを渡すようにして、切り替えるようにしました。

Express - app.js

app.configure(‘development’, function(){
app.set(‘view options’, { PRODUCT: false });
});
app.configure(‘production’, function(){
app.set(‘view options’, { PRODUCT: true });
});

上記のように PRODUCT を「view options」にそれぞれセットします。

<% if (PRODUCT) { -%>

<% } else { -%>

<% } -%>

common.js と detail.js を合わせて圧縮してのが detail.min.js です。

ExpressJS

tilfin freelance software engineer