spinjs
Version:
[](https://gitter.im/sysgears/spinjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [;
var fs = require("fs");
var JSRuleFinder_1 = require("./shared/JSRuleFinder");
var AngularPlugin = (function () {
function AngularPlugin() {
}
AngularPlugin.prototype.configure = function (builder, spin) {
var stack = builder.stack;
if (stack.hasAll(['angular', 'webpack'])) {
var webpack = builder.require('webpack');
var jsRuleFinder = new JSRuleFinder_1.default(builder);
var tsRule = jsRuleFinder.findAndCreateTSRule();
builder.config = spin.merge(builder.config, {
module: {
rules: [
{
test: tsRule.test,
use: { loader: 'angular2-template-loader', options: spin.createConfig(builder, 'angular2Template', {}) }
},
{
test: /[\\\/]@angular[\\\/]core[\\\/].+\.js$/,
parser: { system: true }
}
]
},
plugins: [
new webpack.ContextReplacementPlugin(/angular[\\\/]core/)
]
});
if (!stack.hasAny('dll') && stack.hasAny('web')) {
var VirtualModules = builder.require('webpack-virtual-modules');
var polyfillCode = fs.readFileSync(require.resolve('./angular/angular-polyfill.js')).toString();
builder.config = spin.merge(builder.config, {
module: {
rules: [
{
test: /\.html$/,
loader: 'html-loader',
options: spin.createConfig(builder, 'html', {})
}
]
},
plugins: [new VirtualModules({ 'node_modules/@virtual/angular-polyfill.js': polyfillCode })]
});
builder.config = spin.merge({
entry: {
index: ['@virtual/angular-polyfill']
}
}, builder.config);
}
}
};
return AngularPlugin;
}());
exports.default = AngularPlugin;
//# sourceMappingURL=AngularPlugin.js.map