|
@@ -42,6 +42,7 @@ function AmberCompiler(amber_dir) {
|
|
|
var createDefaultConfiguration = function () {
|
|
|
return {
|
|
|
paths: {},
|
|
|
+ configFile: null,
|
|
|
load: [],
|
|
|
stFiles: [],
|
|
|
jsGlobals: [],
|
|
@@ -79,15 +80,32 @@ AmberCompiler.prototype.main = function (configuration, finished_callback) {
|
|
|
configuration.compiler_libraries = this.compiler_libraries;
|
|
|
configuration.amber_dir = this.amber_dir;
|
|
|
|
|
|
- configuration.paths['text'] = require.resolve('requirejs-text').replace(/\.js$/, "");
|
|
|
- configuration.paths['amber/without-imports'] = path.join(__dirname, 'without-imports');
|
|
|
- if (!configuration.paths.amber) configuration.paths.amber = path.join(this.amber_dir, 'support');
|
|
|
- if (!configuration.paths.amber_core) configuration.paths.amber_core = path.join(this.amber_dir, 'src');
|
|
|
- configuration.requirejs = requirejs.config({
|
|
|
- context: "amberc",
|
|
|
- nodeRequire: require,
|
|
|
- paths: configuration.paths
|
|
|
- });
|
|
|
+ var rjsConfig;
|
|
|
+ if (configuration.configFile) {
|
|
|
+ var configSrc = fs.readFileSync(configuration.configFile, "utf8");
|
|
|
+ rjsConfig = (function () {
|
|
|
+ var require, requirejs;
|
|
|
+ requirejs = require = {
|
|
|
+ config: function (x) {
|
|
|
+ requirejs = require = x;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ eval(configSrc);
|
|
|
+ return require;
|
|
|
+ })();
|
|
|
+ } else {
|
|
|
+ rjsConfig = {
|
|
|
+ paths: configuration.paths
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!rjsConfig.paths.amber) rjsConfig.paths.amber = path.join(this.amber_dir, 'support');
|
|
|
+ if (!rjsConfig.paths.amber_core) rjsConfig.paths.amber_core = path.join(this.amber_dir, 'src');
|
|
|
+ rjsConfig.paths['text'] = require.resolve('requirejs-text').replace(/\.js$/, "");
|
|
|
+ rjsConfig.paths['amber/without-imports'] = path.join(__dirname, 'without-imports');
|
|
|
+ rjsConfig.nodeRequire = require;
|
|
|
+ rjsConfig.context = "amberc";
|
|
|
+ configuration.requirejs = requirejs.config(rjsConfig);
|
|
|
|
|
|
check_configuration(configuration)
|
|
|
.then(collect_st_files)
|