【问题标题】:r.js leads to: Evaluating ./lib/jquery.js as module "jquery" failed with error: TypeError: Cannot read property 'createElement' of undefinedr.js 导致:将 ./lib/jquery.js 评估为模块“jquery”失败并出现错误:TypeError: Cannot read property 'createElement' of undefined
【发布时间】:2026-02-03 19:55:01
【问题描述】:

我正在尝试在使用 jQuery 的代码上使用 r.js。但它在评估 jQuery 时失败了。

这是我收到的错误消息:

$ r.js init-edx-machine.js /usr/local/lib/node_modules/requirejs/bin/r.js:393 抛出错误; ^

错误:将 ./lib/jquery.js 评估为模块“jquery”失败并出现错误:TypeError:无法读取未定义的属性“createElement” 在 Function.req.load (/usr/local/lib/node_modules/requirejs/bin/r.js:2571:23) 在 Object.load (/usr/local/lib/node_modules/requirejs/bin/r.js:1935:21) 在 Module.load (/usr/local/lib/node_modules/requirejs/bin/r.js:1084:29) 在 Module.fetch (/usr/local/lib/node_modules/requirejs/bin/r.js:1074:66) 在 Module.check (/usr/local/lib/node_modules/requirejs/bin/r.js:1106:30) 在 Module.enable (/usr/local/lib/node_modules/requirejs/bin/r.js:1426:22) 在 Object.enable (/usr/local/lib/node_modules/requirejs/bin/r.js:1807:39) 在模块。 (/usr/local/lib/node_modules/requirejs/bin/r.js:1411:33) 在 /usr/local/lib/node_modules/requirejs/bin/r.js:384:23 在每个 (/usr/local/lib/node_modules/requirejs/bin/r.js:309:31)

我在 jquery.js 中搜索了“createElement”。大多数时候它使用文档。有时它使用通过参数给出的变量。

jQuery 版本是 2.1.4。我检查了较新的版本,他们也是这样做的。

我真的不知道这里发生了什么。我现在能做什么?

【问题讨论】:

    标签: jquery requirejs r.js requirejs-optimizer


    【解决方案1】:

    在没有选项的情况下使用r.js 会使其想要执行您的代码,这就是这里发生的情况。您可能会出错,因为在 Node.js 中默认没有全局可用的 document(与浏览器相反),因此代码会失败。

    要执行优化,您需要传递-o 参数:r.js -o ...

    【讨论】:

    • 哦该死的......我错过了这一点。我认为“-o”定义了输出文件。
    最近更新 更多