回答:
あなたが知らなければ、それはおそらくグローバルがあなたにとって正しい答えです。
どちらにしても、次のことを理解する必要があります。
この機能はごく最近にバウアーで導入され、まだ文書化されていません(AFAIK)。これは本質的にを説明しますmoduleType。これは、パッケージが使用されるモジュールテクノロジーを示します(上記を参照)。
現時点では、パッケージのファイルでmoduleTypeプロパティを設定する以外に効果はありませんbower.json。
元のプルリクエストについては、https://github.com/bower/bower/pull/934を参照してください。
コメントに答えるための追加のポイント:
moduleTypeプロパティの検証は行われていません。つまり、人々は、必要に応じて値を使用することを技術的に許可さangularjsれています。non-interoperable/proprietary moduleTypes(と思う作曲、角度、など) -分かりやすいが、まだ再び、何が本当に使用してから人々を妨げるものはないmoduleType彼らが望む価値をyui moduleTypeため、それらが協調計画の一部であると仮定すると、「例外」を作成する必要があります。リストされていないパッケージマネージャー用のパッケージを作成し、それをバウアーに公開する場合はどうすればよいですか?
私はes6モジュールを作成し、/ patch es6-transpilerを使用して必要なパッケージ形式を出力します。それから私はどちらか/そして:
es6し、moduleType免責事項:私はangularjsモジュールを作成する実際の経験はありません。
angularjsそれ自体についてはglobals、「はい」を使用する場合がありますが、私のアップデートを読んでください。お役に立てば幸いです。
私bower initも初めて使っています。
オプションは、JavaScriptコードをモジュール化するさまざまな方法を参照する必要があります。
definerequirejsのようなAMDの使用。requireます。私の場合、Node.jsモジュールdflowを作成しましたが、browserifyを使用して、グローバルdflow var:をエクスポートするdist / dflow.jsファイルを作成しているため、グローバルを選択しました。
ウィンドウグローバルオブジェクトとしてdflowをブラウザ化するために使用したコマンドは
browserify -s dflow -e index.js -o dist/dflow.js
ブラウザ内でもrequireを使いたいので変更しましたので、今使っています
browserify -r ./index.js:dflow -o dist/dflow.js
そして、私は変更bower.moduleTypeをするノードの私にbower.jsonのファイル。
主な動機は、私のモジュール名がダッシュを持っている場合、例えば、私のプロジェクトのためにということでしたフロービュー、私はする必要がcamelizeでグローバル名をされたFlowView。
この新しいアプローチには、他に2つの利点があります。
${npm_package_name}変数を利用して、ブラウザ化に使用するスクリプトを1回記述できます。これは別のトピックですが、後者の利点がどのように役立つかを検討することは本当に価値があります。package.jsonでnpm.scripts.browserify使用する属性を共有させてください
"browserify": "browserify -r ./index.js:${npm_package_name} -o dist/${npm_package_name}.js"
define(function(require, exports, module) { "use strict"; module.exports = { Collection: require("./collection"), View: require('./view') }; });
参考までに、これは正確にbowerがモジュールタイプに関して指定するものです。
mainJavaScriptファイルで定義されたモジュールのタイプ。次の文字列の1つまたは配列を指定できます。
globals:使用window.namespaceまたはthis.namespace構文でグローバル名前空間に追加するJavaScriptモジュールamd:構文を使用した、RequireJSなどのAMD互換のJavaScriptモジュールdefine()node:構文を使用してノードおよびCommonJSと互換性のあるJavaScriptモジュールmodule.exportses6:ECMAScript 6モジュールと互換性のあるJavaScriptモジュール、使用exportおよびimport構文yui:YUIモジュールと互換性のあるJavaScriptモジュール、YUI.add()構文を使用
関連リンク:https : //github.com/bower/spec/blob/master/json.md#moduletype