fix(vite): resolve vue aliases (#734)

This commit is contained in:
pooya parsa 2021-10-12 10:39:06 +02:00 committed by GitHub
parent daf582662c
commit 101ef20c34
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 12 deletions

View File

@ -14,7 +14,7 @@ export default defineNuxtModule({
const runtimeDir = nuxt.options.alias['#meta'] || resolve(distDir, 'meta/runtime') const runtimeDir = nuxt.options.alias['#meta'] || resolve(distDir, 'meta/runtime')
// Transpile @nuxt/meta and @vueuse/head // Transpile @nuxt/meta and @vueuse/head
nuxt.options.build.transpile.push('nuxt3', '@vueuse/head') nuxt.options.build.transpile.push('@vueuse/head')
// Add #meta alias // Add #meta alias
nuxt.options.alias['#meta'] = runtimeDir nuxt.options.alias['#meta'] = runtimeDir

View File

@ -4,12 +4,14 @@ import vuePlugin from '@vitejs/plugin-vue'
import fse from 'fs-extra' import fse from 'fs-extra'
import pDebounce from 'p-debounce' import pDebounce from 'p-debounce'
import consola from 'consola' import consola from 'consola'
import { resolveModule } from '@nuxt/kit'
import { ViteBuildContext, ViteOptions } from './vite' import { ViteBuildContext, ViteOptions } from './vite'
import { wpfs } from './utils/wpfs' import { wpfs } from './utils/wpfs'
import { cacheDirPlugin } from './plugins/cache-dir' import { cacheDirPlugin } from './plugins/cache-dir'
import { bundleRequest } from './dev-bundler' import { bundleRequest } from './dev-bundler'
export async function buildServer (ctx: ViteBuildContext) { export async function buildServer (ctx: ViteBuildContext) {
const _resolve = id => resolveModule(id, { paths: ctx.nuxt.options.modulesDir })
const serverConfig: vite.InlineConfig = vite.mergeConfig(ctx.config, { const serverConfig: vite.InlineConfig = vite.mergeConfig(ctx.config, {
define: { define: {
'process.server': true, 'process.server': true,
@ -24,25 +26,25 @@ export async function buildServer (ctx: ViteBuildContext) {
alias: { alias: {
'#build/plugins': resolve(ctx.nuxt.options.buildDir, 'plugins/server'), '#build/plugins': resolve(ctx.nuxt.options.buildDir, 'plugins/server'),
// Alias vue // Alias vue
'vue/server-renderer': 'vue/server-renderer', 'vue/server-renderer': _resolve('vue/server-renderer'),
'vue/compiler-sfc': 'vue/compiler-sfc', 'vue/compiler-sfc': _resolve('vue/compiler-sfc'),
'@vue/reactivity': `@vue/reactivity/dist/reactivity.cjs${ctx.nuxt.options.dev ? '' : '.prod'}.js`, '@vue/reactivity': _resolve(`@vue/reactivity/dist/reactivity.cjs${ctx.nuxt.options.dev ? '' : '.prod'}.js`),
'@vue/shared': `@vue/shared/dist/shared.cjs${ctx.nuxt.options.dev ? '' : '.prod'}.js`, '@vue/shared': _resolve(`@vue/shared/dist/shared.cjs${ctx.nuxt.options.dev ? '' : '.prod'}.js`),
'vue-router': `vue-router/dist/vue-router.cjs${ctx.nuxt.options.dev ? '' : '.prod'}.js`, 'vue-router': _resolve(`vue-router/dist/vue-router.cjs${ctx.nuxt.options.dev ? '' : '.prod'}.js`),
vue: `vue/dist/vue.cjs${ctx.nuxt.options.dev ? '' : '.prod'}.js` vue: _resolve(`vue/dist/vue.cjs${ctx.nuxt.options.dev ? '' : '.prod'}.js`)
} }
}, },
ssr: { ssr: {
external: [ external: [],
'axios'
],
noExternal: [ noExternal: [
...ctx.nuxt.options.build.transpile.filter(i => typeof i === 'string'), ...ctx.nuxt.options.build.transpile.filter(i => typeof i === 'string'),
'.vue', '.vue',
'plugin-vue:', 'plugin-vue:',
'#app', '#app',
'nuxt3', 'nuxt3/dist',
'@nuxt/nitro' 'nuxt3/src',
'@nuxt/nitro/dist',
'@nuxt/nitro/src'
] ]
}, },
build: { build: {