import { Builder } from '../Builder'; import { ConfigPlugin } from '../ConfigPlugin'; import Spin from '../Spin'; export default class VuePlugin implements ConfigPlugin { public configure(builder: Builder, spin: Spin) { const stack = builder.stack; if (stack.hasAll(['vue', 'webpack'])) { const webpack = builder.require('webpack'); const VueLoaderPlugin = builder.require('vue-loader/lib/plugin'); builder.config = spin.merge(builder.config, { module: { rules: [ { test: /\.vue$/, use: { loader: 'vue-loader', options: spin.createConfig(builder, 'vue', {}) } } ] }, resolve: { alias: { vue$: 'vue/dist/vue.esm.js' } }, plugins: [new VueLoaderPlugin()] }); } } }