私はJavaScriptでたくさん書いています。スクリーンエンドなどのテンプレートで作業するのにうんざりしている場合、各ビルドの前にテンプレート名を追跡してそれらを収集するのがあなたのためのソリューションです、
jsttojsはJavaScriptでクライアントテンプレートをコンパイルするためのユーティリティです。
最初に考えたのは「グーグル」でした。短い検索の後、適切なものがないことが明らかになりました。
handlebars.jsがありますが、それが生成するコードの量は望まれることを多く残しており、勝利は疑わしいようです。 もちろん、すばらしい
Google Closure Toolsがあり
ますが、これはClosure Toolsインフラストラクチャに基づいた完全なソリューションであり、私たちには適していません。 独自のユーティリティを作成することが決定され、一貫性のための言語としてJavaScriptが選択されました。
一番下の行は非常に単純です。テンプレートを含むフォルダーがあり、テンプレートには無限のネストを持つ階層があります。スクリプトはすべてのテンプレートを検索し、それを縮小してグローバルオブジェクトに配置します。テンプレートキーは特定のテンプレートへのパスです。
応用分野
このツールは特定のテンプレートエンジンに関連付けられているわけではなく、お気に入りのソリューション(口ひげ、underscore.js、または独自の最適なフレームワークなど)を使用できます。
スクリプトはコンソールから起動されるため、必要に応じて任意のプロジェクトビルドシステムに統合でき、
gruntを使用する場合は
grunt-jsttojsプラグインを使用でき
ます 。
使用する
インストールは、標準のnpmパッケージマネージャーを使用して行われます。
$ npm install -g jsttojs
次のオプションが利用可能です。
-h, --help -V, --version -e, --ext <n> , jst -n, --name <n> , JSTmpl -w, --watch -r, --removebreak , -a, --amd AMD requirejs
$ jsttojs templates compiled/templates/index.js --ext mustache --watch
私の意見で最も「おいしい」は--watchオプションです。テンプレートを変更したり、ファイルを追加または削除したりするだけで、スクリプトを実行してそれを忘れることができます。
テンプレートを使用した便利な作業用のラッパーを簡単に作成できます。たとえば、hogan.jsの場合、次のようになります。
var Template = { render: function(name, data) { var template = Hogan.compile(MyGlobalVariable[name]); return template.render(data); }, compile: function(name) { return Hogan.compile(MyGlobalVariable[name]); } }
そして使用する
var html = Template.render('video/index', { username: 'World' });
例
テンプレート:
コマンドを実行します。
$ jsttojs templates compiled/templates/index.js --name MyGlobalVariable
そして、テンプレートを使用する準備を整えます:
おわりに
その結果、サーバーアプリケーションで行うのと同じくらい簡単にテンプレートを作成できるようになりました。 これがあなたのプロジェクトに良い線を追加することを願っています。 考え、提案、プールのリクエストは大歓迎です。
コードは
githubで入手できます
参照資料
目をそらすこともできます
更新
サーバーで「正直な」コンパイルが必要な場合は、ハンドルバーに目を向けますが、テンプレートのサイズが大幅に増加することを覚えておいてください(
コメントで詳しく説明し
ます )。 しかし、まず第一に、jsttojsは組み込みのサーバー再コンパイルを持たないテンプレートエンジンを対象としていますが、テンプレートエンジンでの使用を除外するものではありません。