1

我按照以下教程尝试将我的项目优化为一个 .js 文件,但不幸的是,我似乎无法获得预期的结果。我让 r.js 为我创建一个优化的文件夹,但不是单个文件,而是在各自的文件夹中获得每个单独的 .js 文件的丑陋副本。似乎最后一个连接步骤不知何故丢失了。

我正在尝试利用现有的配置文件而不是使用路径,我不知道该特定步骤是否破坏了它。

我的 build/app.build.js 是:

({
  appDir: '../',
  baseUrl: 'js',
  mainConfigFile: '../js/config.js',
  dir: '../../my-app-build',
  modules: [{
    name: 'main'
  }]
})

我的 main.js 文件将配置文件作为其依赖项:

require(["config"], function() {
  require(['underscore', [...]
    [...]
  }
}

配置文件是声明我所有项目依赖项的地方:

require.config({
  baseUrl: "js",
  paths: {[...]},
  shim: {...]},
});

有没有人知道为什么我可能没有得到我正在寻找的单个文件输出?我在这篇文章中尝试了另一种方法,但这只会为我生成 main.js,并在其前面添加配置文件。

谢谢!

4

3 回答 3

3

该问题是由 r.js 构建配置文件中缺少以下选项引起的:

findNestedDependencies: true

没有它,r.js 将不会超过 main.js 中的第一个要求,因此只会加载 config.js 而不会加载下一级的依赖项。仅供参考(注意它将优化的产品保存在同一源文件夹中,这并不理想)看起来像这样:

({
  baseUrl: '.',
  mainConfigFile: 'config.js',
  name: 'main',
  out: 'main-build.js',
  findNestedDependencies: true,
})
于 2013-05-14T04:23:11.807 回答
1

我遇到了同样的问题,并从 Github 问题列表中获得了解决方案。可能这个配置参数也会帮助你

https://github.com/jrburke/r.js/issues/379

If you only want one JS file built, instead of using dir: use out: for a single JS file build.

于 2013-05-13T04:38:15.640 回答
0

指定输出文件路径:

({
    // ...
    out: '../main.min.js'
})
于 2013-05-13T00:48:35.940 回答