回答:
あなたが知らなければ、それはおそらくグローバルがあなたにとって正しい答えです。
どちらにしても、次のことを理解する必要があります。
この機能はごく最近にバウアーで導入され、まだ文書化されていません(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コードをモジュール化するさまざまな方法を参照する必要があります。
define
requirejsのような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がモジュールタイプに関して指定するものです。
main
JavaScriptファイルで定義されたモジュールのタイプ。次の文字列の1つまたは配列を指定できます。
globals
:使用window.namespace
またはthis.namespace
構文でグローバル名前空間に追加するJavaScriptモジュールamd
:構文を使用した、RequireJSなどのAMD互換のJavaScriptモジュールdefine()
node
:構文を使用してノードおよびCommonJSと互換性のあるJavaScriptモジュールmodule.exports
es6
:ECMAScript 6モジュールと互換性のあるJavaScriptモジュール、使用export
およびimport
構文yui
:YUIモジュールと互換性のあるJavaScriptモジュール、YUI.add()
構文を使用
関連リンク:https : //github.com/bower/spec/blob/master/json.md#moduletype