javascript - 如何确定 JS 文件是否与 AMD 兼容?

标签 javascript jquery asynchronous amd curl.js

我正在使用 curlrequire(评估两者)异步加载 js 文件。我在原型(prototype)制作应用程序中使用了 5 个 js 文件:

jquery.min.js // off of CDN
Bacon.js // reactive programming tool
curl.js  // js loader
index.coffee // page specific
foo.coffee // app specific

好的,所以我构建了 index.coffeefoo.coffee,所以我很确定它们与 AMD 不兼容。虽然可能是错误的,因为 foo.coffee

if module? && module.exports?
  module.exports = Foo

最后。

我如何查看 js 文件并说“是的,AMD”或“否,不是 AMD”?

最佳答案

寻找 AMD 的 define( 签名。这是一个相当肯定的赌注。不幸的是,它几乎可以在文件中的任何地方。它通常在顶部或底部。AMD 模块有多种变体,UMD 模块格式也有多种:https://github.com/umdjs/umdhttps://gist.github.com/unscriptable/4118495

此外,您也可以将原始 CommonJS 模块与 curl.js 一起使用。您必须将 CJS 模块放入一个文件夹中,并告诉 curl 这是一个使用 CJS 模块的包:

curl.config({
    packages: [
        { name: 'foo', location: 'path/to/foo-folder', main: 'foo',
            config: { moduleLoader: 'curl/loader/cjsm11' }
        },
        { name: 'curl', location: 'path/to/curl/src/curl', main: 'curl' }
    ]
});

您需要 curl 包(或路径)来告诉 curl 在哪里可以找到 curl/loader/cjsm11。

关于javascript - 如何确定 JS 文件是否与 AMD 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14526949/

相关文章:

javascript - 是否可以在同一条线上断开?

C# 线程机制

javascript - Wistia E-v1.js 脚本被加载两次

javascript - react : Setting state in Ajax callback

javascript - 如何禁用过多的 actions-on-google 日志 - api.ai

javascript - 将信息显示到工具提示中

jquery - 从 ASP.NET MVC2 应用程序执行 Ajax 调用时出现问题

javascript - 简约的 play() 和pause() 音频解决方案

javascript - 逐个字母显示文本

java - play框架2.6 ws无法解析