0

我很少阅读有关requireJS的内容并试图理解它。

我想知道的:

  1. 我应该以特定的方式或像 Module-Pattern 这样的模式来构建我的文件吗?
  2. 使用库时,这些文件应该支持 AMD 吗?

非常感谢你的帮助。

4

2 回答 2

1
  1. 您可以以任何您认为合适的方式构建文件。RequireJS加载加载 require.js 的 script 标签的属性中引用的脚本文件。data-main从该文件中,您可以自由地要求您想要的任何模块。

  2. 不需要支持 AMD。您可以使用shim 配置加载将值导出到全局范围的模块(即普通的 javascript 文件)。

于 2013-01-03T13:47:29.570 回答
0

大多数情况下,我正在设置一个结构如下的require.js项目:

    • js
      • 模块类型1
        • 模组1
        • 模组2
      • 模块Type2
        • 模组1
        • 模组2
      • 应用程序.js
      • 引导程序.js
      • 要求
        • 需要.js
      • 库1
        • lib1.js
    • css/img/partials/...
    • 索引.html

并且初始bootstrap.js有一个require.config对象和一个初始require

/*global define, require */

require.config({
    baseUrl: 'js',
    paths: {
      lib1: '../lib/lib1/lib1'
    },
    shim: {
      lib1: ['something']
    } 
});
require(['lib1', 'app'], function (lib1, app) {
   app.doSth();
});

在您的 html 页面中,您只需要一个script带有data-main属性的标签:

<body>
    ...
    <script type="text/javascript" src="lib/require/require.js" data-main="js/bootstrap"></script>
</body>

编辑:模块不必与 AMD 兼容,但如果它们在您自己的控制之下,最好让它们与 AMD 兼容。您可以使用.require.config

于 2013-01-03T13:48:21.717 回答