mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-30 01:17:16 +00:00
73ba30fb69
* refactor: split out webpack and postcss build options * feat(schema): set nuxt3 builder in config * fix(schema): default postcss config file to false * chore: update lockfile * style: remove unused imports * refactor(webpack): remove (previously disabled) babel config * refactor: move shared vite options into schema * fix(schema): omit __NUXT_BASE__ from defaults * fix: move appDir-dependent options back to vite * refactor: split out virtual modules * refactor: extract compile/createDevMiddleware * refactor: further improvements * chore: remove `@nuxt/webpack-builder` dependency * chore: update lockfile * refactor: move `builder` option to top level * fix: bind close to watcher instance * chore: update lockfile * fix: create portal between postcss & build.postcss.postcssOptions * fix: remove duplicate * fix: revert * fix: use `postcss` directly * fix: import builder from rootDir * chore: dedupe webpack install * test: update fixture to use `builder` * fix: bind class in pify Co-authored-by: Pooya Parsa <pyapar@gmail.com>
27 lines
826 B
TypeScript
27 lines
826 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('build: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)
|
|
}))
|
|
}
|