私はemberjsを楽しんでおり、私の小さなモバイル・アプリケーションのいくつかの次のステップを踏み出し、Ember/Handlebarsテンプレートをビルド・プロセスの一部としてプリコンパイルしたいと考えています。Emberjs Handlebarテンプレートをnodejsでプリコンパイルする簡単な方法は?
私はRubyを使いこなすのが好きで、node.jsを使いたいと思っています。
私はEmber.Handlebars.precompileを使用したいと思っていますが、残念ながら標準的なember.jsファイルをノード環境に読み込めません。ノードREPLからの素朴な試みの例:私は私はすでに、彼らは私の意見で正しく動作するように私のコードでそれらを設定する方法を考え出したと思う
> var e = require('./ember');
ReferenceError: window is not defined
at /Users/jeremyosborne/git/projects/ldls/client/lib/emberjs/src/ember.js:5:1
at Object.<anonymous> (/Users/jeremyosborne/git/projects/ldls/client/lib/emberjs/src/ember.js:1596:2)
--- stack trace, you get the idea ---
、私はちょうどそれらをコンパイルしたいですブラウザDOMの外部の環境。
正規のember.jsをノードにロードする代わりに、emberリポジトリから取り出してテンプレートをコンパイルするために使用できる特定のファイルセットがありますか?
編集 私はうまく動作するが、メンテナンスのためにFを取得するkluge修正を行った。私はHandlebars
コードからwindow
オブジェクトへの参照を差し引いたすべてのコードをつかんだ。その後をObject.create
に置き換えてEmber
オブジェクトをエクスポートし、ノードではビオラのものがうまく動作するようになりました。(動作し、生成される関数はテンプレートなので)Ember.Handlebars.Compiler
コードを続けました。しかし、私はこれまでのmaintainafailのために私自身の質問に対する答えとは考えていません。答えはまだ開いています。
EDIT2 上記は完全な失敗であることが分かります。おそらくプロシージャに何か問題がありますが、Ember.Handlebars.precompile
またはEmber.Handlebars.compile
を使用すると機能しません。テンプレートは作成されますが、私のコードでEmber.TEMPLATESに添付されたプリコンパイルされたテンプレートを使用すると機能しません。 emberjs.comサイトで提案されているように、変更されたスクリプトタグで明示的に渡されたときにテンプレートが動作するようにしかできないようです。
編集3 私が間違っていたことを理解しました。私の答えは以下の通りです。
I本当にエンバーランナーが動作するように見え、おそらくそれに向かって引き寄せますかのように。しかし、今のところ、私は自分のリグの構築プロセスを持っており、単純な(a)emberテンプレートを探しています。(b)nodejを使ってemberテンプレートをコンパイルしています。それは本当に簡単なはずですが、私はむしろすべてを手作りではなく、ビルドプロセスを変更したくありません。また、jsdomが好きですが、jqueryをロードしてからEmberをロードし、domを持つふりをして、純粋なJavaScript処理を行うことができるように、私はそれを使用して不満を感じます。ああ。 – jeremyosborne
Ember-Runnerはemberテンプレートをコンパイルします。私はソースに精通していないので、特定のコード行を指摘することができません。私はそれを実装するのが非常に難しいとは思わないことに同意します。 –