javascript - 每个脚本文件只能有一个匿名定义调用
问题描述
我正在使用 loader.js 创建摩纳哥编辑器,但在控制台中出现 2 次错误“每个脚本文件只能有一个匿名定义调用”。
<script src="/monaco-editor/min/vs/loader.js"></script>
创建编辑器的代码
require.config({ paths: { 'vs': '/monaco-editor/min/vs' }});
require(['vs/editor/editor.main'], function() {
monacoEditor= monaco.editor.create(document.getElementById('coding-editor'), {
value: [
'function x() {',
'\tconsole.log("Hello world!");',
'}'
].join('\n'),
language: 'javascript'
});
});
我试图搜索问题并找到以下相关答案:
您正在加载的某些代码正在使用匿名模块 ID 调用定义。你可以:
通过 AMD 加载程序加载该代码(即手动要求它),以便 AMD 加载程序创建<script>
标签。
在 AMD 加载程序之前加载该代码(即该代码段将无法使用定义)
在该脚本的评估期间取消定义(即,如果您使用<script>
标签加载它,则在之前取消定义并在之后恢复它)
尝试取消设置define.jquery,AFAIK jquery 可能正在检查define 函数
这个页面已经有很多 jquery 并且我理解这一点是因为 jQuery。请帮助一些人让我通过例子来理解。谢谢
解决方案
今天早上我遇到了同样的问题,我应用了第二个解决方案。
在 AMD 加载程序之前加载该代码(即该代码段将无法使用定义)
这是有效define
的,因为正如错误所说,它是从 jQuery 内部匿名调用的。在require.js 网站中有进一步的解释,它恰好使用了类似于 loader.js 的 loader 函数(define, require)。
就我而言,我只是确保在 jQuery 之后包含我的加载器,这样define
s 就不会发生冲突。
推荐阅读
- sql - SQL 服务器——年份
- android - 播放音频文件时显示进度条?
- swift - 奇怪的 tableView.reloadData() 行为
- windows - 汇编 - 在循环中使用 scanf 读取字符串仅读取一个字符串
- c++ - 正确地将 SDL 矩形渲染到屏幕上
- java - 删除项目后更新 JList
- python - 如何将每个月放在 matplotlib 的 xaxis 中?
- javascript - 类型 '() => void' 不可分配给类型 'string'
- python - 使用 pyinstaller 后,我的程序在运行 subprocess.run() 命令时冻结
- c# - 如何使用 webAPI C# 中提供的端点将文件上传到数据库?