ブラウザ用のシンプルなCommonJSモジュールパッカー-クリンチ

ステッチを使用しても十分ではない場合、 browserifyの設定は少し複雑に見えます。 クリンチを試してください。

同梱物:


私が解決したかった主な機能は、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を構成および使用する方法の例は、 こちらをご覧ください

Source: https://habr.com/ru/post/J172831/


All Articles