2016-07-09 8 views
2

ich ein Problem mit der Optimierung haben mit r.jsoptimieren mehrere requirejs Konfigurationsdatei

Ich habe ein Projekt, das mehrere requirejs Konfigurationsdatei

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

haben, die jeweils main.js Selbst Pakete hat

main.js Code ist:

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

module1/main.js Code wie:

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

und build.js Datei wie ist:

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

wenn ich $ r.js -o build.js ausführen es

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) 

Antwort

1

Mein Wissen einen Fehler zurück, r.js ist einfach nicht in der Lage mehr zu verarbeiten requirejs.config ruft auf, wenn es ein Bündel erstellt. Ich habe noch nie eine Dokumentation oder einen Problembericht oder ein Arbeitsbeispiel gesehen, das dem widerspricht. (RequireJS werden Sie requirejs.config mehrfach lassen rufen, und kombinieren Sie die Konfigurationen zur Laufzeit übergeben aber das ist nicht das gleiche wie mit r.js Prozess mehrere Aufrufe requirejs.config.

Sie werden alle Anrufe zu requirejs.config kombinieren müssen in einen einzigen Anruf, den Sie r.js zu mit mainConfigFile zeigen.

habe ich das Setup auf meinem Rechner neu erstellt und bekam den gleichen Fehler, den Sie gemacht haben. Wenn ich die config in app/main.js die folgenden ändern, dann kann ich das Bündel bauen :

requirejs.config({ 
    'baseUrl': '../app/', 
    'paths': { 
     'module1' : 'module1/main', 
     'foo' : 'module1/foo', 
     'bar' : 'module1/bar' 
    } 
}); 

Just for Kicks, ich habe auch versucht, die folgende die nicht funktioniert: (. Beachten Sie auch, dass baseUrl in der oben . vereinfacht werden könnten, anstatt ../app/)

requirejs.config({ 
    'baseUrl': '../app/', 
    'paths': { 
     'module1' : 'module1/main' 
    } 
}); 
requirejs.config({ 
    'paths': { 
     'foo' : 'module1/foo', 
     'bar' : 'module1/bar' 
    } 
});