Javascript 带有不支持AMD的模块的RequireJS配置

Javascript 带有不支持AMD的模块的RequireJS配置,javascript,requirejs,amd,shim,requirejs-define,Javascript,Requirejs,Amd,Shim,Requirejs Define,因此,我试图阅读,以找出如何正确地做到这一点,但我一直无法加载库,所以它不会被定义为未定义。我是通过NPMwebjars使用它的,不过我想你怎么定义它并不重要 基本上,我正在努力利用我的项目中的工作。这是主分支中可能发生的变化。react引导开关使用exports.default=开关定义库。我使用RequireJS定义了其他几个模块,它们支持AMD并且正在工作 下面是我如何使用RequireJS的 requirejs.config("paths":{"react-bootstrap-switc

因此,我试图阅读,以找出如何正确地做到这一点,但我一直无法加载库,所以它不会被定义为未定义。我是通过NPMwebjars使用它的,不过我想你怎么定义它并不重要

基本上,我正在努力利用我的项目中的工作。这是主分支中可能发生的变化。react引导开关使用exports.default=开关定义库。我使用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
} 
没有定义。我一直试图使用init函数介于两者之间,但在窗口中找不到正确的名称空间。还尝试在路径之前切换填充顺序,尝试“默认”而不是“切换”,以及其他一些技巧,但它似乎无法正确导入,因为它被卡在未定义的位置


最后一件事是在本地获取代码,并更改为其他内容,而不是exports.default,或者只是为此编写我自己的函数,但我想让它工作起来,以供将来参考。

很明显,您尝试加载的是一个传输的文件,它针对CommonJS环境。RequireJS无法按原样加载此类文件

您至少需要在
define(函数(require、exports、module){
开头和
}中包装代码在末尾。一旦你这样做了,它可能会起作用。您可以使用进行包装,也可以使用任何其他工具

 requirejs.config({
             "paths":{"react-bootstrap-switch":["@routes.WebJarAssets.at("react-bootstrap-switch/15.0.0/dist/js/index")"]},
             "shim": {
                     "react-bootstrap-switch": {
                          exports: 'Switch'
                      }}});