javascript - 什么是 shim JavaScript 库以及为什么它们不支持 AMD?

标签 javascript requirejs amd shim

我将使用 RequireJS 来利用 AMD。

在 RequireJS 配置中,我找到了一个 shim block 来定义 shim JavaScript 库。

谁能告诉我 AMD JavaScript 库和 shim 库之间的区别吗?

最佳答案

一个RequireJs模块遵循一组非常具体的代码规则——主要与需要哪些模块(模块可以需要其他模块)以及导出哪些功能或方法有关。

一个shim是与非 ADM 库一起使用的代码块,为 RequireJS 提供一组提示,允许加载非 AMD 库。

编辑

简而言之,AMD 模块是这样开始的:

define(
    module_id /*optional*/, 
    [dependencies] /*optional*/, 
    definition function /*function for instantiating the module or object*/
);

有些系统使用奇怪的包装器来检测 AMD 是否可用,如果可用,则使用它,否则它们将返回 define进入荣耀eval声明。

任何其他都不是 AMD 模块,需要正常加载或进行填充。

关于javascript - 什么是 shim JavaScript 库以及为什么它们不支持 AMD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22981708/

相关文章:

javascript - 访问 require.js 回调的返回值

node.js - 是否可以在测试中设置 amdefine 以便我不必在所有模块文件中定义它?

mobile - 使用 RequireJS 和 Backbone.js 进行页面转换

javascript - 使用jQuery setInterval同步css关键帧动画

javascript - 变量未填充所需值

javascript - 在 HotTowel SPA 中使用 Durandal 定义模块的 jQuery 依赖项

javascript - 如何将一个 VS2013 项目中的通用 typescript 代码共享到一个单独的 VS2013 项目中

javascript - 中止 doc.save() 内的 mongooseJS 保存过程

javascript - 将文字对象设置为组件的 Input 属性作为已知对象类

javascript - requirejs 循环依赖和函数对象