Итак, я пытаюсь прочитать Require JS API -documentation, чтобы выяснить, как это должно быть сделано правильно, но мне не удалось загрузить библиотеку, чтобы она не определялась как неопределенная , Я использую это через NPM-WebJars, хотя, думаю, не имеет значения, как вы его определяете.Конфигурация RequireJS с модулями, не поддерживающими AMD
В принципе, я пытаюсь использовать the react-bootstrap-switch -library, работающий в моем проекте. Вот JavaScript-file source in Pastebin, поскольку он может измениться в главной ветви. response-bootstrap-switch определяет библиотеку с export.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-функциями, но я не могу найти правильное пространство имен внутри окна. Также попытался переключить порядок shimming перед путями, пытаясь «по умолчанию» вместо «Switch» и некоторые другие трюки, но он просто не импортирует его должным образом, поскольку он застрял до неопределенного.
Последнее, что я мог бы попытаться сделать, это получить код локально и изменить что-то другое вместо export.default или просто запрограммировать мою собственную функцию для этого, но я хотел бы, чтобы эта работа работала для дальнейшего использования.