WebpackがUMDバンドルを作成するように設定すると、AMDとCommonJSのパッケージ名は小文字(脊髄の場合)になり、グローバルコンテキストの場合はCamelCase名?例えば、私は私のバンドルがCamelCaseと脊髄の名前を持つWebpack出力UMDライブラリ
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("dependency"));
else if(typeof define === 'function' && define.amd)
define("my-library", ["dependency"], factory); // spinal-case
else if(typeof exports === 'object')
exports["my-library"] = factory(require("dependency")); // spinal-case
else
root["MyLibrary"] = factory(root["dependency"]); // CamelCase
})...
で始めることを期待
これはReactDOMでどのように見えるかです:
(function(f) {
// CommonJS
if (typeof exports === "object" && typeof module !== "undefined") {
module.exports = f(require('react'));
// RequireJS
} else if (typeof define === "function" && define.amd) {
define(['react'], f);
// <script>
} else {
var g;
if (typeof window !== "undefined") {
g = window;
} else if (typeof global !== "undefined") {
g = global;
} else if (typeof self !== "undefined") {
g = self;
} else {
// works providing we're not in "use strict";
// needed for Java 8 Nashorn
// see https://github.com/facebook/react/issues/3037
g = this;
}
g.ReactDOM = f(g.React);
}
})(function(React)...
例として、ES6を使用している場合、 'react-dom; '、' ReactDOM = require(' react ');'からReactDOMをインポートします。 RequireJSを使い、単純にファイルにスクリプトを追加するだけで 'ReactDOM'(' window.ReactDOM')を呼び出すだけです。 ReactJSバンドルを参照してください。https://npmcdn.com/[email protected]/dist/react-dom.js –
@AlexanderShutov、私は良い例で私の答えを更新しました。 。 – KevBot
最後に私が必要とするものを得るために、 'umdDefineName'を削除しなければならなかったので、AMDとCommonJSのセクションは名前なしになります。 CommonJSはなんらかの理由でWebpackに残されていますが、WebpackやRollupでインポートすると幸運にも無視されます。最後に、[チームがそれをどう反応させるか]を見てください(https://github.com/facebook/react/blob/046f7448d7224da5b33441248a32a319a6464bc5/grunt/config/browserify.js#L98)。 –