|
1 | 1 | import { presetThemeDefault } from '@anu-vue/preset-theme-default'
|
2 | 2 | import {
|
3 |
| - addPlugin, |
4 |
| - createResolver, |
| 3 | + addPluginTemplate, |
5 | 4 | defineNuxtModule,
|
6 | 5 | } from '@nuxt/kit'
|
7 | 6 | import presetIcons from '@unocss/preset-icons'
|
@@ -50,16 +49,11 @@ export default defineNuxtModule<ModuleOptions>({
|
50 | 49 | },
|
51 | 50 | },
|
52 | 51 | setup(opts, nuxt) {
|
53 |
| - const { resolve } = createResolver(import.meta.url) |
| 52 | + const enablePreset = opts.presetTheme === true || typeof opts.presetTheme === 'object' |
54 | 53 |
|
55 |
| - nuxt.options.css.push('anu-vue/dist/style.css') |
56 |
| - |
57 |
| - if (opts.presetTheme === true || typeof opts.presetTheme === 'object') { |
| 54 | + if (enablePreset) { |
58 | 55 | nuxt.options.unocss = nuxt.options.unocss || {}
|
59 | 56 |
|
60 |
| - const ext = typeof opts.presetTheme === 'object' ? opts.presetTheme.style : 'css' |
61 |
| - nuxt.options.css.push(`@anu-vue/preset-theme-default/dist/style.${ext}`) |
62 |
| - |
63 | 57 | const iconPreset = !!nuxt.options.unocss?.icons || true
|
64 | 58 | nuxt.options.unocss.preflight = false
|
65 | 59 |
|
@@ -93,13 +87,34 @@ export default defineNuxtModule<ModuleOptions>({
|
93 | 87 | }
|
94 | 88 | }
|
95 | 89 |
|
| 90 | + // Add inline plugin template for Anu |
| 91 | + // TODO: Look for reasons why import '#imports' doesn't work |
| 92 | + addPluginTemplate({ |
| 93 | + filename: 'anu-vue.mjs', |
| 94 | + getContents: () => { |
| 95 | + const lines = [ |
| 96 | + 'import { anu } from \'anu-vue\'', |
| 97 | + `export default defineNuxtPlugin(nuxtApp => { |
| 98 | + nuxtApp.vueApp.use(anu) |
| 99 | + })`, |
| 100 | + ] |
| 101 | + |
| 102 | + if (enablePreset) { |
| 103 | + const styleExt = typeof opts.presetTheme === 'object' ? opts.presetTheme.style : 'css' |
| 104 | + lines.unshift(`import '@anu-vue/preset-theme-default/dist/style.${styleExt}'`) |
| 105 | + } |
| 106 | + |
| 107 | + lines.unshift('import \'anu-vue/dist/style.css\'') |
| 108 | + |
| 109 | + return lines.join('\n') |
| 110 | + }, |
| 111 | + }) |
| 112 | + |
96 | 113 | nuxt.hook('prepare:types', ({ tsConfig, references }) => {
|
97 | 114 | tsConfig.compilerOptions!.types.push('anu-vue/volar')
|
98 | 115 | references.push({
|
99 | 116 | types: 'anu-vue/volar',
|
100 | 117 | })
|
101 | 118 | })
|
102 |
| - |
103 |
| - addPlugin({ src: resolve('./runtime/plugin') }) |
104 | 119 | },
|
105 | 120 | })
|
0 commit comments