优化多个requirejs配置文件

时间:2016-07-09 10:27:26

标签: node.js requirejs r.js requirejs-optimizer

我在使用r.js优化时遇到了问题

我有一个有多个requirejs配置文件的项目

+ app
    - module1    
        * main.js
        * foo.js
        * bar.js
    - main.js
+ build.js

每个main.js都有自包

main.js代码是:

requirejs.config({
    'baseUrl': '../app/',
    'paths': {
        'module1' : 'module1/main'
    }
});
define(['module1'],function(){});

module1 / main.js代码如:

requirejs.config({
    'paths': {
        'foo' : 'module1/foo',
        'bar' : 'module1/bar'
    }
});
define(['foo','bar'],function(){});

和build.js文件类似:

({
    mainConfigFile: 'app/main.js',
    baseUrl: 'app',
    name: 'main',
    out: 'dist/main.js',
})

当我执行$ r.js -o build.js时,它会返回错误

Tracing dependencies for: main
Error: ENOENT: no such file or directory, open 'D:\Project\Test\app\foo.js'
In module tree:
    main
      module1

Error: Error: ENOENT: no such file or directory, open 'D:\Project\Test\app\foo.js'
In module tree:
    main
      module1

    at Error (native)

1 个答案:

答案 0 :(得分:1)

据我所知, SharedPreferences mPrefs = getSharedPreferences("IDvalue",0); if(mPrefs.contains("DATE")) { //do something }else { mPrefs.edit().putString("DATE", currentdate); mPrefs.edit().commit(); Toast.makeText(this, "changed", Toast.LENGTH_SHORT).show(); } 在构建捆绑包时根本无法处理多个r.js调用。我从未见过任何文档或问题报告,或者与此相矛盾的工作实例。 (RequireJS将允许您多次调用requirejs.config,并合并在运行时传递的配置,但这与requirejs.config处理多个{{1}的调用不同}。

您必须将拨打r.js的所有电话合并到一个电话中,并将requirejs.config指向requirejs.config

我在我的机器上重新创建了您的设置并且遇到了同样的错误。如果我将r.js中的配置修改为以下内容,那么我可以构建捆绑包:

mainConfigFile

只是为了踢,我也试过以下哪个不起作用

app/main.js

(另请注意,上述requirejs.config({ 'baseUrl': '../app/', 'paths': { 'module1' : 'module1/main', 'foo' : 'module1/foo', 'bar' : 'module1/bar' } }); 可简化为requirejs.config({ 'baseUrl': '../app/', 'paths': { 'module1' : 'module1/main' } }); requirejs.config({ 'paths': { 'foo' : 'module1/foo', 'bar' : 'module1/bar' } }); 而非baseUrl。)