spinjs
Version:
<p align="center"><a href="#"><img width="150" src="https://rawgit.com/sysgears/spin.js/master/logo.svg"></a></p>
47 lines (42 loc) • 1.7 kB
text/typescript
import * as path from 'path';
import Spin from "../Spin";
import { ConfigPlugin } from "../ConfigPlugin";
import { Builder } from "../Builder";
import requireModule from '../requireModule';
import JSRuleFinder from './shared/JSRuleFinder';
export default class AngularPlugin implements ConfigPlugin {
configure(builder: Builder, spin: Spin) {
const stack = builder.stack;
if (stack.hasAll(['angular', 'webpack'])) {
const webpack = requireModule('webpack');
const jsRuleFinder = new JSRuleFinder(builder);
const jsRule = jsRuleFinder.rule;
builder.config = spin.merge(builder.config, {
module: {
rules: [{
test: jsRule.test,
use: requireModule.resolve('angular2-template-loader'),
}]
},
plugins: [
// Workaround for angular/angular#11580
new webpack.ContextReplacementPlugin(
// The (\\|\/) piece accounts for path separators in *nix and Windows
/angular(\\|\/)core(\\|\/)@angular/,
path.resolve('src'),
{} // a map of your routes
),
]
});
if (!stack.hasAny('dll') && stack.hasAny('web')) {
builder.config = spin.merge({
entry: {
index: [
require.resolve('./angular/angular-polyfill.js')
],
},
}, builder.config);
}
}
}
}