如何解决匿名 define() 模块不匹配?

3

我有一个网页,想要添加一个外部库:

<script async src="somepath/sweetalert2.all.min.js"></script>

这个网页已经包含了一些由我的框架(Oracle Apex)添加的其他库,而我无法控制。
但是我遇到了错误:(截图)
未捕获错误:不匹配的匿名定义()模块
我不是一个JavaScript专家,所以我不知道如何在不出现此错误的情况下添加此库。
请问有人可以帮忙吗?

enter image description here

1个回答

2

您需要使用 require 而不是 script 加载它。

您应该在某个位置有一个 requirejs-config.js 文件。在那里,您需要添加您的脚本:

var config = {
   map: {
      sweetalert: "js/sweetalert"
   }
}

关键字是你的名称,值是脚本的路径 现在你可以像这样使用它:

require(["sweetalert"], function(){
   swal("Good job!", "You clicked the button!", "success");
});

This should be enough


谢谢您的回答。我已经在配置文件中添加了映射。请问我应该在哪里添加 require(["sweetalert"], function(){});?谢谢。 - Thomas Carlton
1
@ThomasCarlton 在你的页面上某个地方。我会说在页面顶部的某个地方。 - bill.gates
我应该保留<script async src="somepath/sweetalert2.all.min.js"></script>,对吗? - Thomas Carlton
@ThomasCarlton 不需要这样做。通过编写 require(["sweetalert"], function(){});,require.js 将为您加载它。 - bill.gates
哦谢谢。我已经按照你的建议进行了操作,但在使用库时,我遇到了错误Uncaught ReferenceError: Swal is not defined。基本上一些库全局变量没有声明。是否有任何方法可以“初始化”库,使其声明所有需要的内容? - Thomas Carlton
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接