HTML ページのソースを確認すると、HTML タグとテキスト コンテンツが圧縮されており、空白や行はなく、インライン JavaScript になっています。
3 に答える
Jade v0.30.0で私にとってうまくいくものを発見しました:
- .js ファイルの名前を .uglify 拡張子に変更します
Jade テンプレートで、以下を使用します。
include name-of-javascript-file.uglify
動作する理由: Jade のソース コードを調べていると、filters.js
. そこには、への依存関係が表示されtransformers
ます。( lib/transformers.js
Transformers モジュールの) には、 を含むさまざまな変換ユーティリティが表示されますuglify
。include
どうやら、Jade は、宣言内の正しいファイル拡張子と一致する場合、これらのトランスフォーマーのいずれかを呼び出します。
私はそれについて確信が持てず、まだテストしていませんが、おそらくフィルターを追加して UglifyJS を利用できます。例えば
var uglyParser = require("uglify-js").parser;
var uglyUgly = require("uglify-js").uglify;
var uglify = function(str) {
var ast = uglyParser.parse(str);
ast = uglyUgly.ast_mangle(ast);
ast = uglyUgly.ast_squeeze(ast);
return uglyUgly.gen_code(ast);
}
正直、それを翡翠のどこに入れたらいいのかわからないので、フィルターとして扱っています。今のところ、https://github.com/visionmedia/jade/blob/master/lib/filters.jsに貼り付けてください。
翡翠での使用法は次のようになります。
script(type="text/javascript")
:uglify
<Your JavaScript Code>
繰り返しますが、私はそれをテストしていません。しかし、私はそれがうまくいくと思います。今日は後でテストします。
docsによると、任意の JSTransformer を jade フィルターとして使用できます。したがって、インライン JS に対して通常これを行う場所は次のとおりです。
script.
(function doSomething () { … })();
次のようにする必要があります。
script
:uglify-js
(function doSomething () { … })();