2

我在 r.js 查找嵌套 require 调用的文件依赖项时遇到问题。

如果我通过需要一个字符串数组,则压缩器工作正常,并且找到所有文件依赖项。

define([
    'jquery', 
    'underscore', 
    'backbone'
], function() {
    require(['views/MobileNavView']);   // Works fine!
});

如果我通过 require 分配给变量的字符串数组,则压缩器找不到文件依赖项。

var requiredFiles = [
    'views/MobileNavView'
];

define([
    'jquery', 
    'underscore', 
    'backbone'
], function() {
    require(requiredFiles); // Doesn't Work!
});

如果我将字符串数组分配给变量,什么可能导致压缩器找不到文件依赖项?

这是我的 app.build.js

({
    baseUrl: '.',
    findNestedDependencies: true,
    mainConfigFile: 'Main.js',
    name: 'Main',
    out: 'Core.js',
    optimize: 'none'
})
4

1 回答 1

3

这实际上是在r.js 文档页面上提到和解释的

(...) 因此,它不会找到通过变量名加载的模块:

var mods = someCondition ? ['A B C D'];
 需要(模组);

那是因为r.js将脚本扫描为文本,它实际上并没有评估它们。看看它的源代码,你会发现有很多正则表达式匹配正在进行。

于 2013-02-13T12:48:55.130 回答