ngw
Version:
Provides an opportunity to overload webpack config for angular-cli applications
57 lines (56 loc) • 2.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var path = require("path");
var index_1 = require("@angular-devkit/build-angular/src/browser/index");
var index_2 = require("@angular-devkit/build-angular/src/server/index");
var index_3 = require("@angular-devkit/build-angular/src/karma/index");
var index_4 = require("@angular-devkit/build-angular/src/extract-i18n/index");
var configClasses = {
'browser': index_1.BrowserBuilder,
'server': index_2.ServerBuilder,
'karma': index_3.KarmaBuilder,
'extract-i18n': index_4.ExtractI18nBuilder
};
var configClassNames = {
'browser': 'BrowserBuilder',
'server': 'ServerBuilder',
'karma': 'KarmaBuilder',
'extract-i18n': 'ExtractI18nBuilder'
};
Object.keys(configClasses).forEach(buildConfig);
function buildConfig(variant) {
var methodName = configClasses[variant].prototype.hasOwnProperty('_buildWebpackConfig')
? '_buildWebpackConfig'
: 'buildWebpackConfig';
configClasses[variant].prototype.buildConfigInner = configClasses[variant].prototype[methodName];
configClasses[variant].prototype[methodName] = configClasses[variant].prototype.buildConfig = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var config = this.buildConfigInner.apply(this, args);
try {
var interceptorPath = path.resolve('./ngw.config');
var interceptor = require(interceptorPath).default;
var options = {
root: args[0],
projectRoot: args[1],
options: args[args.length - 1]
};
return interceptor(config, options);
}
catch (e) {
console.dir(e);
if (e.code === 'MODULE_NOT_FOUND') {
console.warn('ngw.config file is not found at serving directory. Starting common build');
return config;
}
else {
throw e;
}
}
};
var webpackConfig = require.resolve("@angular-devkit/build-angular/src/" + variant + "/index");
require.cache[webpackConfig][configClassNames[variant]] = configClasses[variant];
}
require('@angular/cli/bin/ng');