Nuxt/packages/nuxt3/src/webpack/presets/vue.ts

27 lines
730 B
TypeScript
Raw Normal View History

2020-09-02 12:27:27 +00:00
import VueLoaderPlugin from 'vue-loader/dist/pluginWebpack5'
import VueSSRClientPlugin from '../plugins/vue/client'
import VueSSRServerPlugin from '../plugins/vue/server'
import { WebpackConfigContext } from '../utils/config'
export function vue (ctx: WebpackConfigContext) {
const { options, config } = ctx
config.plugins.push(new VueLoaderPlugin())
config.module.rules.push({
test: /\.vue$/i,
loader: 'vue-loader',
options: options.build.loaders.vue
})
if (ctx.isClient) {
config.plugins.push(new VueSSRClientPlugin({
filename: `../server/${ctx.name}.manifest.json`
}))
} else {
config.plugins.push(new VueSSRServerPlugin({
filename: `${ctx.name}.manifest.json`
}))
}
}