gpt4 book ai didi

javascript - RequireJS 配置不支持 AMD 的模块

转载 作者:太空宇宙 更新时间:2023-11-04 16:31:26 25 4
gpt4 key购买 nike

所以我正在尝试阅读 Require JS API -documentation弄清楚应该如何正确完成此操作,但我无法加载库,因此它不会被定义为未定义。我通过 NPM-WebJars 使用它,但我想你如何定义它并不重要。

基本上,我正在尝试使用 the react-bootstrap-switch -library在我的项目中工作。这是JavaScript-file source in Pastebin因为它可能在主分支中发生变化。 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 介于两者之间,但我无法在窗口内找到正确的 namespace 。还尝试在路径之前切换填充顺序,尝试使用“默认”而不是“切换”以及其他一些技巧,但它似乎无法正确导入它,因为它陷入了未定义状态。

我可以尝试的最后一件事是在本地获取代码并更改为其他内容而不是exports.default,或者只是为此编写我自己的函数,但我希望使其能够工作以供将来引用。

最佳答案

很明显,您尝试加载的是一个已转译的文件,并且目标是 CommonJS 环境。 RequireJS 无法按原样加载此类文件。

您至少需要将其代码包装在开头的 define(function (require, Exports, module) { 中,以及 }); 中结尾。一旦你这样做了,它可能会起作用。您可以使用r.js进行包装,或任何其他工具。

关于javascript - RequireJS 配置不支持 AMD 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39774526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com