同梱物:
- シンプルなAPI
-
.js
、.json
、.coffee
、.eco
、.jade
- 開発モード対応-障害のあるエクスプレススマートキャッシュへの組み込みが簡単
- バンドルの小さなオーバーヘッド〜40 SLOC
- モジュールを置き換え、グローバルオブジェクトをシミュレートするためのシンプルなメカニズム
私が解決したかった主な機能は、npmを通じてインストールされた依存関係を含むCommonJSモジュールのネイティブな使用でした。 IOを使用するモジュールまたはCバインディングを持つモジュールが機能しないことは明らかですが、単純なモジュールの大きなレイヤーをクライアントに転送できます。
2番目の機能-テストによる開発が理想的です-すべてのクライアントコードを自動化されたバージョンのmochaで実行するのが理想的です。
まあ、素敵なボーナス-合理的な量の「バインディング」コード、依存関係の一意の解決、バージョンのサポート、重複の排除、ページ上に任意の数のバンドルを持つ機能。
私の意見では、すべてのアイデアは非常にうまく実装されました。
インストール-ローカル
npm install clinch
。
さて、簡単な使用例:
#!/usr/bin/env coffee Clinch = require 'clinch' packer = new Clinch() pack_config = bundle : main : "#{__dirname}/hello_world" packer.buldPackage 'my_package', pack_config, (err, data) -> console.log 'Builder, data: \n', data
「hello_world.coffee」を含む
module.exports = hello_world : -> 'Hello World!'
出力はこの結果のようなものを与えます
(function() { <... skip clinch header ...> dependencies = {}; sources = { "2377150448": function(exports, module, require) { module.exports = { hello_world: function() { return 'Hello World!'; } }; }}; this.my_package = { "main": require(2377150448)}; }).call(this);
そして、ブラウザでこの機能は次のように利用できます
hello_world = my_package.main.hello_world
グローバルオブジェクトに新しいプロパティを挿入するという考え方が気に入らない場合は、無効にすることができます。さらに、jadeコンパイラにはいくつかの設定があります。
このプロジェクトにはロシア語のマニュアルがあり、質問やコメントのおかげでおそらく改善されるでしょう。
さらに、クライアント上でコードと結果を確認できるデモプロジェクトがあります。
PS。 良いマニュアルの書き方を教えてくれた人なら誰にでも心から感謝します。
更新: 0.2.5以降、独自のハンドラーを登録する(または組み込みのハンドラーをオーバーライドする)ことができるため、このメソッドは
registerProcessor()
と呼ば
registerProcessor()
ます。
次のように機能します。
# add .econ processor packer.registerProcessor '.econ', (file_content, filename, cb) -> content = Eco.precompile file_content cb null, "module.exports = #{content}"
Handlebarsを構成および使用する方法の例は、 こちらをご覧ください 。