模块配置路径和填充

时间:2013-12-11 17:02:07

标签: javascript requirejs

我正在构建一个AMD模块,它使用多个库和子文件夹中的全局变量。太少减少代码并防止全局泄漏我想使用配置,但似乎require配置只能在全局环境中使用(多么具有讽刺意味)?!

我想在模块中做的事基本上是这样的:

define(['require'], function(require) {
  require.config({
    baseUrl: 'sub/directory/',
    paths: {
      libfoo: 'libfoo23.min',
    },
    shim: {
      libfoo: {
        exports: 'Foo'
    }
  });
  require(['libfoo'], function(Foo) {});
});

2 个答案:

答案 0 :(得分:1)

我通常这样做。

<强> config.js

require.config({
    baseUrl: 'sub/directory/',
    paths: {
      libfoo: 'libfoo23.min',
    },
    shim: {
      libfoo: {
        exports: 'Foo'
    }
});

<强> bootstrap.js

define([ 'config' ], function() {
    require([ 'main' ]);
});

在HTML中,我以这种方式引导:

<script data-main="/public/app/bootstrap" src="~/public/vendor/requirejs/require.js"></script>

其他所有内容(应用)均以main.js

开头

答案 1 :(得分:1)

不,你做不到。

并且有充分的理由:如果模块加载配置是 中定义的模块,需要加载配置,谁先来?这是鸡和蛋的问题。

RequireJS试图尽量减少全球污染;它通过引入2个全局变量来成功,这是引导所需的(require()define())。