RequireJS:优化器为define模块生成名称

时间:2016-10-17 17:22:29

标签: javascript jquery gulp requirejs

我使用gulp.js和requirejs(gulp-requirejs)的优化工具,它将所有scritps组合到一个文件中。我有一个没有名称的定义模块,但它为它生成一个名称。问题是我不知道如何从另一个文件中调用该模块。

例如在page1.js中:

...
define("map",["jquery"],function($){
   ...
});
define("lib", ["jquery"],function($){
   ...
});

并在page2.js中我想调用page1.js lib模块,但我不知道怎么做?我希望如果优化工具没有设置名称然后我的代码工作,但这样我不知道如何使它工作。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

除非命名这些模块,否则无法在单个文件中使用多个模块。否则,RequireJS将不知道如何将模块请求与定义它的实际代码相关联。

将所有模块优化到单个捆绑包中的典型情况是捆绑包中将有一个特定模块作为应用程序的入口点,然后您可以放置paths中的模块名称:

require.config({
  paths: {
    lib: 'path/to/page1',
  }
});

如果你有一个入口点,但实际上也可能在bundle 之外有代码,它将启动加载模块在bundle < / em>,然后您需要在bundles中列出这些模块:

require.config({
  paths: {
    lib: 'path/to/page1',
  },
  bundles: {
    lib: ['map', ...],
  }
});

我上面显示的bundles设置基本上是“当您查找名为map的模块时,获取模块lib,您将获得{{1}的定义}“。