mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-28 08:32:06 +00:00
27 lines
829 B
TypeScript
27 lines
829 B
TypeScript
import { useNuxt } from '@nuxt/kit'
|
|
import VirtualModulesPlugin from 'webpack-virtual-modules'
|
|
|
|
export function registerVirtualModules () {
|
|
const nuxt = useNuxt()
|
|
|
|
// Initialize virtual modules instance
|
|
const virtualModules = new VirtualModulesPlugin(nuxt.vfs)
|
|
const writeFiles = () => {
|
|
for (const filePath in nuxt.vfs) {
|
|
virtualModules.writeModule(filePath, nuxt.vfs[filePath])
|
|
}
|
|
}
|
|
|
|
// Workaround to initialize virtual modules
|
|
nuxt.hook('webpack:compile', ({ compiler }) => {
|
|
if (compiler.name === 'server') { writeFiles() }
|
|
})
|
|
// Update virtual modules when templates are updated
|
|
nuxt.hook('app:templatesGenerated', writeFiles)
|
|
|
|
nuxt.hook('webpack:config', configs => configs.forEach((config) => {
|
|
// Support virtual modules (input)
|
|
config.plugins!.push(virtualModules)
|
|
}))
|
|
}
|