そのため、 Require JS APIのドキュメントを読んで、これを適切に行う方法を理解しようとしていますが、ライブラリをロードできなかったため、未定義として定義されません。私はこれを NPM-WebJars で使用していますが、どのように定義しても問題ないと思います。
基本的に、私は自分のプロジェクトで動作する react-bootstrap-switch -library を利用しようとしています。マスターブランチで変更される可能性があるため、Pastebinの JavaScript ファイルソースを次に示します。react-bootstrap-switch は exports.default = Switch でライブラリを定義します。RequireJS を使用して定義された他のモジュールがいくつかあります。これらは AMD をサポートしており、動作しています。
これが私がRequireJSを使用している方法です
requirejs.config("paths":{"react-bootstrap-switch":["@routes.WebJarAssets.at("react-bootstrap-switch/15.0.0/dist/js/index")"]}}); // the file location
ライブラリの使用
define(['react', 'react-bootstrap-switch'], function(React, Switch){
console.log(Switch); // <- undefined
}
したがって、標準の requirejs.config -import だけでは、AMD のサポートがないため機能しません。だから私はシムを使うべきだと思いますが、どうすればいいですか?私はそれを少し読んでいますが、それを使用してライブラリを適切にインポートできません。おそらくかなり簡単なはずですが、機能していないようです。例えば
requirejs.config({
"paths":{"react-bootstrap-switch":["@routes.WebJarAssets.at("react-bootstrap-switch/15.0.0/dist/js/index")"]},
"shim": {
"react-bootstrap-switch": {
exports: 'Switch'
}}});
未定義のままにします。私は init-functions を使ってその間に入ろうとしてきましたが、ウィンドウ内で正しい名前空間を見つけることができません。また、パスの前にシミングの順序を切り替えたり、「Switch」の代わりに「default」を試したり、その他のトリックを試みたりしましたが、未定義のままになるため、適切にインポートされていないようです。
私が試みることができる最後のことは、コードをローカルで取得し、exports.default の代わりに別のものに変更するか、そのために独自の関数をコーディングすることですが、将来の参考のためにこれを機能させたいと思います。