diff --git a/src/dirs.ts b/src/dirs.ts new file mode 100644 index 00000000..d0519f08 --- /dev/null +++ b/src/dirs.ts @@ -0,0 +1,11 @@ +import { fileURLToPath } from 'url' +import { resolve } from 'pathe' + +export const distDir = resolve(typeof __dirname === 'undefined' ? fileURLToPath(import.meta.url) : __dirname) + +const _makeResolve = (base: string) => { + return (...p: string[]) => resolve(base, ...p) +} + +export const presetsDir = resolve(distDir, 'presets') +export const resolvePresetsDir = _makeResolve(presetsDir) diff --git a/src/index.ts b/src/index.ts index 1ed5e865..25ddbb20 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,9 @@ import { resolve } from 'pathe' -import { defineNuxtModule, installModule, addComponentsDir, addTemplate } from '@nuxt/kit' +import { defineNuxtModule, installModule, addComponentsDir, addTemplate, resolveModule } from '@nuxt/kit' import { colors } from '@unocss/preset-uno' import defu from 'defu' import type { UnocssNuxtOptions } from '@unocss/nuxt' +import { presetsDir } from './dirs' export interface UiColorsOptions { /** @@ -165,14 +166,15 @@ export default defineNuxtModule({ let ui: object = {} try { if (typeof preset === 'object') { - ui = await import(resolve(__dirname, `./presets/${defaults.preset}`)) + ui = await import(resolveModule(`./${defaults.preset}`, { paths: presetsDir })) ui = defu(preset, ui) } else { - ui = await import(resolve(__dirname, `./presets/${preset}`)) + // @ts-ignore + ui = await import(resolveModule(`./${preset}`, { paths: presetsDir })) } } catch (e) { - ui = await import(resolve(__dirname, `./presets/${defaults.preset}`)) + ui = await import(resolveModule(`./${defaults.preset}`, { paths: presetsDir })) } addTemplate({