路径和填充程序的模块配置

module config for path and shim

本文关键字:模块 配置 程序 填充 路径      更新时间:2024-07-05

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

我想在我的模块内做的基本上是:

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

不,你不能那样做。

这有一个很好的理由:如果模块加载配置是在需要加载配置的模块内部定义的,那么谁先来?这是一个鸡和蛋的问题。

RequireJS努力将全球污染降至最低;它成功地引入了自举所需的2个全局(require()define())。

我通常这样做。

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 中启动