我想要给文件夹结构here。使用require.js加载JavaScript库
区别在于我正在使用这些库的所有最新开发版本。但是,他们没有正确上传,甚至jquery。我无法理解AMD兼容的意思。
我只是下载了这些库。这是否意味着它们不兼容AMD?是否有单独的AMD兼容版本的这些库?我们是否需要使用shim config来加载非AMD兼容?
我害怕使用垫片,因为require.js官方文档说它不被推荐。
我想要给文件夹结构here。使用require.js加载JavaScript库
区别在于我正在使用这些库的所有最新开发版本。但是,他们没有正确上传,甚至jquery。我无法理解AMD兼容的意思。
我只是下载了这些库。这是否意味着它们不兼容AMD?是否有单独的AMD兼容版本的这些库?我们是否需要使用shim config来加载非AMD兼容?
我害怕使用垫片,因为require.js官方文档说它不被推荐。
我找不到任何提及的shim
在文档中是“不推荐”的;我不会太担心这件事。这是一种经过充分测试并且日益流行的将不符合AMD标准的库与RequireJS进行桥接的方法(以前,唯一的方法是构建一个包含在定义调用中的专用AMD版本;这会使图书馆维护人员付出额外的努力) 。
如果“最新开发版”你的意思是jQuery的预发行版本,它看起来像它确实支持AMD(看看下载页面的pre-release section,向下滚动至最底部source code file:你会看到与AMD代码)
Backbone
和underscore
需要在任何情况下垫高,因为它们是AMD无关,所以没有从它(这两个特定库即使在shim config option documentation example使用,这样就可以逃脱只是重用)。
@ kryger的权利,jQuery是AMD兼容的,垫片非AMD模块没有错。
AMD兼容只是意味着该模块符合AMD specification;因此它输出它的功能。例如:
define(['jquery', 'underscore'], function ($, _) {
// function body
});
所以在函数体,上面:
$
参数访问jQuery的;但_
参数将为undefined
。一些AMD兼容模块(如jQuery的)也行“独立”,如在一个HTML标签<script>
,他们将在那里出口到全局命名空间(例如window.$
)。
我认为jQuery的还是出口全球$
当您通过AMD加载器加载它,所以你可以只在您的入口点/加载的jQuery一旦第一需要的时候它总是访问全局$
(而不是定义$
参数)。另外,如果你使用jQuery插件(修改全局的插件),它可能会让你感到困惑!