gpt4 book ai didi

javascript - 如何使用 requireJS 加载具有非 AMD 和 AMD 库的现有自定义库

转载 作者:行者123 更新时间:2023-12-04 11:39:34 25 4
gpt4 key购买 nike

在我的项目中,有一个自定义第三方库(单个构建文件),他们使用几个非 AMD 和 AMD 文件创建了该库。并且大多数属性直接暴露给窗口对象。在我们的项目中,根据新的要求,我们必须使用 requireJS 以异步模式加载这个第三方库。我尝试使用 shim 配置,但从第三方库中收到一个错误,说需要全局/窗口、全局/文档。

  • 如何在不编辑第三方库的情况下解决当前项目中的上述错误?可能吗?
  • 如何在项目中使用此第三方库属性,因为所有属性都直接暴露给窗口对象。

  • 这是我们现在遇到的错误
    enter image description here
    谁能帮我解决这个问题?
    提前致谢!

    最佳答案

    看起来您的第 3 方库是 video.js。 Video.js(见下文)创建了两个全局对象 global/windowglobal/document这似乎用于在没有窗口或文档的服务器上测试 video.js。
    你可以看看他们的定义here然后是 import .如果您愿意编辑文件(并从工作服务器端停止 video.js 测试),那么这是一个简单的解决方案。
    您说您不想编辑库,所以让我们寻找其他解决方案。您可以继续定义它们,如下所示:

    define('global/window', [], () => {
    return window;
    });

    define('global/document', ['global/window'], (window) => {
    return window.document;
    });
    然后加载 video.js:
    require(['video.7.5.0.min.js'], (videojs) => {
    window.videojs = videojs;
    // any other initialization you want here
    });
    此外,了解您使用的 video.js 版本可能会有所帮助。看来这可能已在 7.11.1 ( in this PR ) 中得到修复,因此很有可能只需升级到该版本或更高版本就可以解决问题。
    this issue 中有很多关于这个问题的讨论。 ,但由于前面提到的 PR,它似乎已关闭。

    关于javascript - 如何使用 requireJS 加载具有非 AMD 和 AMD 库的现有自定义库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67692826/

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