fix(nuxt3): resolve dist dir by top level module

This commit is contained in:
Pooya Parsa 2021-08-11 23:26:47 +02:00
parent 709c7b1912
commit 91c6ef57e7
5 changed files with 12 additions and 5 deletions

View File

@ -1,6 +1,7 @@
import { statSync } from 'fs' import { statSync } from 'fs'
import { resolve, relative } from 'upath' import { resolve, relative } from 'upath'
import { defineNuxtModule, resolveAlias, addVitePlugin, addWebpackPlugin } from '@nuxt/kit' import { defineNuxtModule, resolveAlias, addVitePlugin, addWebpackPlugin } from '@nuxt/kit'
import { distDir } from '../dirs'
import { scanComponents } from './scan' import { scanComponents } from './scan'
import type { Component, ComponentsDir } from './types' import type { Component, ComponentsDir } from './types'
import { loaderPlugin } from './loader' import { loaderPlugin } from './loader'
@ -66,7 +67,7 @@ export default defineNuxtModule({
app.templates.push({ app.templates.push({
filename: 'components.mjs', filename: 'components.mjs',
src: resolve(__dirname, 'runtime/components.tmpl.mjs'), src: resolve(distDir, 'pages/runtime/components.tmpl.mjs'),
options: { components } options: { components }
}) })

View File

@ -5,6 +5,7 @@ import pagesModule from '../pages/module'
import metaModule from '../meta/module' import metaModule from '../meta/module'
import componentsModule from '../components/module' import componentsModule from '../components/module'
import globalImportsModule from '../global-imports/module' import globalImportsModule from '../global-imports/module'
import { distDir, pkgDir } from '../dirs'
import { initNitro } from './nitro' import { initNitro } from './nitro'
export function createNuxt (options: NuxtOptions): Nuxt { export function createNuxt (options: NuxtOptions): Nuxt {
@ -55,11 +56,10 @@ export async function loadNuxt (opts: LoadNuxtOptions): Promise<Nuxt> {
const options = loadNuxtConfig(opts) const options = loadNuxtConfig(opts)
// Temp // Temp
const distDir = resolve(__dirname, '..')
options.appDir = options.alias['#app'] = resolve(distDir, 'app') options.appDir = options.alias['#app'] = resolve(distDir, 'app')
options._majorVersion = 3 options._majorVersion = 3
options.buildModules.push(pagesModule, metaModule, componentsModule, globalImportsModule) options.buildModules.push(pagesModule, metaModule, componentsModule, globalImportsModule)
options.modulesDir.push(resolve(distDir, '../node_modules')) options.modulesDir.push(resolve(pkgDir, 'node_modules'))
const nuxt = createNuxt(options) const nuxt = createNuxt(options)

View File

@ -0,0 +1,4 @@
import { resolve } from 'upath'
export const distDir = __dirname
export const pkgDir = resolve(distDir, '..')

View File

@ -1,5 +1,6 @@
import { resolve } from 'upath' import { resolve } from 'upath'
import { addPlugin, addTemplate, defineNuxtModule } from '@nuxt/kit' import { addPlugin, addTemplate, defineNuxtModule } from '@nuxt/kit'
import { distDir } from '../dirs'
import type { MetaObject } from './types' import type { MetaObject } from './types'
export default defineNuxtModule({ export default defineNuxtModule({
@ -9,7 +10,7 @@ export default defineNuxtModule({
viewport: 'width=device-width, initial-scale=1' viewport: 'width=device-width, initial-scale=1'
}, },
setup (options, nuxt) { setup (options, nuxt) {
const runtimeDir = resolve(__dirname, 'runtime') const runtimeDir = resolve(distDir, 'meta/runtime')
// Transpile @nuxt/meta and @vueuse/head // Transpile @nuxt/meta and @vueuse/head
nuxt.options.build.transpile.push(runtimeDir, '@vueuse/head') nuxt.options.build.transpile.push(runtimeDir, '@vueuse/head')

View File

@ -1,13 +1,14 @@
import { existsSync } from 'fs' import { existsSync } from 'fs'
import { defineNuxtModule, addTemplate, addPlugin } from '@nuxt/kit' import { defineNuxtModule, addTemplate, addPlugin } from '@nuxt/kit'
import { resolve } from 'upath' import { resolve } from 'upath'
import { distDir } from '../dirs'
import { resolveLayouts, resolvePagesRoutes } from './utils' import { resolveLayouts, resolvePagesRoutes } from './utils'
export default defineNuxtModule({ export default defineNuxtModule({
name: 'router', name: 'router',
setup (_options, nuxt) { setup (_options, nuxt) {
const pagesDir = resolve(nuxt.options.srcDir, nuxt.options.dir.pages) const pagesDir = resolve(nuxt.options.srcDir, nuxt.options.dir.pages)
const runtimeDir = resolve(__dirname, 'runtime') const runtimeDir = resolve(distDir, 'pages/runtime')
// Disable module if pages dir do not exists // Disable module if pages dir do not exists
if (!existsSync(pagesDir)) { if (!existsSync(pagesDir)) {