最初のBowerコンポーネントを作成しています。 bower init
を実行した後、スクリプトは「このパッケージが公開するモジュールの種類は何ですか?」これらのオプションで:
これらのオプションの違いは何ですか?
わからない場合は、グローバルが正しい答えである可能性が非常に高いです。
いずれにしても、あなたは理解する必要があります:
この機能はごく最近、bowerで導入されましたが、まだ文書化されていません(AFAIK)。基本的に、moduleType
を説明します。これは、パッケージが消費されるモジュールテクノロジーを示しています(上記を参照)。
現時点では、パッケージのbower.json
ファイルでmoduleType
プロパティを設定する以外は何の効果もありません。
元のpull-requestについては https://github.com/bower/bower/pull/934 をご覧ください。
コメントに答えるためのいくつかの追加ポイント:
moduleType
プロパティの検証は行われていません。つまり、angularjs
を使用する傾向がある場合は、moduleType
を含め、技術的には必要な値を使用できます。non-interoperable/proprietary moduleTypes
(作曲家、角度など)を含めることに熱心ではないようです。yui moduleType
の(やや)最近のインクルードであるため、 協調計画の一部 であると仮定して、「例外」を作成する必要があります。リストにないパッケージマネージャーのパッケージを作成し、bowerで公開する場合はどうすればよいですか?
Es6モジュールを作成し、/ patch es6-transpiler を使用して必要なパッケージ形式を出力します。次に、私は/または:
es6
をmoduleType
として使用します免責事項:私は実際にangularjsモジュールを作成した経験はありません。
私も初めてbower init
を使用しています。
オプションは、JavaScriptコードをモジュール化するさまざまな方法を参照する必要があります。
define
を使用します。require
を使用します。私の場合、Node.jsモジュールを作成しました dflow ですが、browserifyを使用して、グローバルをエクスポートするdist/dflow.jsファイルを作成していますdflowvar:したがって、globalsを選択しました。
ブラウザ化に使用したコマンド dflow aswindowglobal object
browserify -s dflow -e index.js -o dist/dflow.js
ブラウザ内でもrequireを使用することを好むため、これを変更したため、現在使用しています
browserify -r ./index.js:dflow -o dist/dflow.js
そして、bower.moduleTypeをnodeに変更しましたbower .jsonファイル。
主な動機は、モジュール名にダッシュがある場合、たとえばプロジェクト flow-view の場合、camelizeのグローバル名flowView。
この新しいアプローチには、他にも2つの利点があります。
${npm_package_name}
変数を利用して、ブラウザ化に使用するスクリプトを一度書くことができます。これは別のトピックですが、後者の利点を考慮することは本当に価値があります。私のpackage.jsonで使用するnpm.scripts.browserify
属性を共有させてください
"browserify": "browserify -r ./index.js:${npm_package_name} -o dist/${npm_package_name}.js"
参考までに、これは、bowerがモジュールタイプに関して正確に指定するものです。
main
JavaScriptファイルで定義されているモジュールのタイプ。次の文字列の1つまたは配列になります。
globals
:window.namespace
またはthis.namespace
構文を使用して、グローバル名前空間に追加するJavaScriptモジュールAMD
:AMDと互換性のあるJavaScriptモジュール、 RequireJS など、define()
構文を使用node
:module.exports
構文を使用して node および CommonJS と互換性のあるJavaScriptモジュールes6
: ECMAScript 6モジュール と互換性のあるJavaScriptモジュール、export
およびimport
構文を使用yui
: YUI Modules と互換性のあるJavaScriptモジュール、YUI.add()
構文を使用
関連リンク: https://github.com/bower/spec/blob/master/json.md#moduletype