mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-14 12:14:41 +01:00
chore: migrate to @nuxt/module-builder
This commit is contained in:
@@ -1,11 +0,0 @@
|
|||||||
export default {
|
|
||||||
declaration: true,
|
|
||||||
rollup: { cjsBridge: true },
|
|
||||||
entries: [
|
|
||||||
'./src/module',
|
|
||||||
{ input: 'src/runtime/', outDir: 'dist/runtime' },
|
|
||||||
{ input: 'src/presets/', outDir: 'dist/presets' },
|
|
||||||
{ input: 'src/css/', outDir: 'dist/css' }
|
|
||||||
],
|
|
||||||
externals: ['@nuxt/kit', '@nuxt/schema', '@unocss/preset-uno']
|
|
||||||
}
|
|
||||||
29
package.json
29
package.json
@@ -4,27 +4,33 @@
|
|||||||
"repository": "https://github.com/nuxtlabs/ui",
|
"repository": "https://github.com/nuxtlabs/ui",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"exports": {
|
"exports": {
|
||||||
".": "./dist/module.mjs"
|
".": {
|
||||||
|
"import": "./dist/module.mjs",
|
||||||
|
"require": "./dist/module.cjs"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"main": "./dist/module.mjs",
|
"main": "./dist/module.cjs",
|
||||||
"types": "./dist/module.d.ts",
|
"types": "./dist/types.d.ts",
|
||||||
"files": [
|
"files": [
|
||||||
"dist"
|
"dist"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "unbuild",
|
"build": "nuxt-module-build",
|
||||||
|
"prepack": "yarn build",
|
||||||
"dev": "nuxi dev docs",
|
"dev": "nuxi dev docs",
|
||||||
"build:docs": "nuxi build docs",
|
"build:docs": "nuxi build docs",
|
||||||
"postbuild:docs": "mv ./docs/.vercel_build_output .vercel_build_output",
|
"postbuild:docs": "mv ./docs/.vercel_build_output .vercel_build_output",
|
||||||
"lint": "eslint --ext .ts,.js,.vue ."
|
"lint": "eslint --ext .ts,.js,.vue .",
|
||||||
|
"release": "yarn lint && standard-version && git push --follow-tags"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@nuxt/kit": "npm:@nuxt/kit-edge@latest",
|
||||||
"@headlessui/vue": "^1.4.3",
|
"@headlessui/vue": "^1.4.3",
|
||||||
"@iconify-json/heroicons-outline": "^1.0.2",
|
"@iconify-json/heroicons-outline": "^1.0.2",
|
||||||
"@iconify-json/heroicons-solid": "^1.0.2",
|
"@iconify-json/heroicons-solid": "^1.0.2",
|
||||||
"@popperjs/core": "^2.11.2",
|
"@popperjs/core": "^2.11.2",
|
||||||
"@unocss/nuxt": "^0.22.4",
|
"@unocss/nuxt": "^0.22.5",
|
||||||
"@vueuse/core": "^7.5.3",
|
"@vueuse/core": "^7.5.4",
|
||||||
"defu": "^5.0.1",
|
"defu": "^5.0.1",
|
||||||
"gradient-avatar": "^1.0.2",
|
"gradient-avatar": "^1.0.2",
|
||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
@@ -32,12 +38,15 @@
|
|||||||
"pathe": "^0.2.0"
|
"pathe": "^0.2.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@nuxt/schema": "npm:@nuxt/schema-edge@latest",
|
"@nuxt/module-builder": "0.1.6",
|
||||||
"@nuxtjs/eslint-config-typescript": "^8.0.0",
|
"@nuxtjs/eslint-config-typescript": "^8.0.0",
|
||||||
"@types/lodash-es": "^4.17.5",
|
"@types/lodash-es": "^4.17.5",
|
||||||
"@vueuse/components": "^7.5.3",
|
"@vueuse/components": "^7.5.4",
|
||||||
"eslint": "^8.7.0",
|
"eslint": "^8.7.0",
|
||||||
"nuxt3": "latest",
|
"nuxt3": "latest",
|
||||||
"unbuild": "^0.6.7"
|
"standard-version": "^9.3.2"
|
||||||
|
},
|
||||||
|
"build": {
|
||||||
|
"externals": ["@unocss/preset-uno"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,34 @@ import { defineNuxtModule, installModule, addComponentsDir, addTemplate, addPlug
|
|||||||
import { colors } from '@unocss/preset-uno'
|
import { colors } from '@unocss/preset-uno'
|
||||||
import defu from 'defu'
|
import defu from 'defu'
|
||||||
import type { UnocssNuxtOptions } from '@unocss/nuxt'
|
import type { UnocssNuxtOptions } from '@unocss/nuxt'
|
||||||
import type { Nuxt } from '@nuxt/schema'
|
|
||||||
import type { UiOptions } from './types'
|
interface ColorsOptions {
|
||||||
|
/**
|
||||||
|
* @default 'indigo'
|
||||||
|
*/
|
||||||
|
primary?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @default 'zinc'
|
||||||
|
*/
|
||||||
|
gray?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModuleOptions {
|
||||||
|
/**
|
||||||
|
* @default 'tailwindui'
|
||||||
|
*/
|
||||||
|
preset?: string | object
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @default 'u'
|
||||||
|
*/
|
||||||
|
prefix?: string
|
||||||
|
|
||||||
|
colors?: ColorsOptions
|
||||||
|
|
||||||
|
unocss?: UnocssNuxtOptions
|
||||||
|
}
|
||||||
|
|
||||||
const defaults = {
|
const defaults = {
|
||||||
preset: 'tailwindui',
|
preset: 'tailwindui',
|
||||||
@@ -21,7 +47,7 @@ const defaults = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default defineNuxtModule<UiOptions>({
|
export default defineNuxtModule<ModuleOptions>({
|
||||||
meta: {
|
meta: {
|
||||||
name: '@nuxthq/ui',
|
name: '@nuxthq/ui',
|
||||||
configKey: 'ui',
|
configKey: 'ui',
|
||||||
@@ -31,7 +57,7 @@ export default defineNuxtModule<UiOptions>({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
defaults,
|
defaults,
|
||||||
async setup (_options: UiOptions, nuxt: Nuxt) {
|
async setup (_options, nuxt) {
|
||||||
const { preset, prefix, colors: { primary = 'indigo', gray = 'zinc' } = {} } = _options
|
const { preset, prefix, colors: { primary = 'indigo', gray = 'zinc' } = {} } = _options
|
||||||
const { shortcuts = [], rules = [], variants = [], theme = {} } = _options.unocss || {}
|
const { shortcuts = [], rules = [], variants = [], theme = {} } = _options.unocss || {}
|
||||||
|
|
||||||
@@ -136,7 +162,7 @@ export default defineNuxtModule<UiOptions>({
|
|||||||
nuxt.options.build.transpile.push(runtimeDir)
|
nuxt.options.build.transpile.push(runtimeDir)
|
||||||
nuxt.options.build.transpile.push('@popperjs/core', '@headlessui/vue')
|
nuxt.options.build.transpile.push('@popperjs/core', '@headlessui/vue')
|
||||||
|
|
||||||
const presetsDir = resolve(__dirname, './presets')
|
const presetsDir = resolve(runtimeDir, './presets')
|
||||||
|
|
||||||
let ui: object = (await import(resolveModule(`./${defaults.preset}`, { paths: presetsDir }))).default
|
let ui: object = (await import(resolveModule(`./${defaults.preset}`, { paths: presetsDir }))).default
|
||||||
try {
|
try {
|
||||||
@@ -195,17 +221,6 @@ export default defineNuxtModule<UiOptions>({
|
|||||||
})
|
})
|
||||||
|
|
||||||
// Add CSS
|
// Add CSS
|
||||||
nuxt.options.css.push(resolve(__dirname, './css/forms.css'))
|
nuxt.options.css.push(resolve(runtimeDir, 'css', 'forms.css'))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
export * from './types'
|
|
||||||
|
|
||||||
declare module '@nuxt/schema' {
|
|
||||||
interface NuxtConfig {
|
|
||||||
ui?: UiOptions
|
|
||||||
}
|
|
||||||
interface NuxtOptions {
|
|
||||||
ui?: UiOptions
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { nanoid } from 'nanoid'
|
import { nanoid } from 'nanoid'
|
||||||
import { Ref } from 'vue'
|
import { Ref } from 'vue'
|
||||||
import { defineNuxtPlugin, useState } from '#app'
|
import { defineNuxtPlugin, useState } from '#app'
|
||||||
import { ToastNotification, ToastPlugin } from '../../types'
|
import { ToastNotification, ToastPlugin } from '../types/toast'
|
||||||
|
|
||||||
export default defineNuxtPlugin((nuxtApp) => {
|
export default defineNuxtPlugin((nuxtApp) => {
|
||||||
const notifications: Ref<ToastNotification[]> = useState('notifications', () => [])
|
const notifications: Ref<ToastNotification[]> = useState('notifications', () => [])
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
import type { UnocssNuxtOptions } from '@unocss/nuxt'
|
|
||||||
|
|
||||||
export interface UiColorsOptions {
|
|
||||||
/**
|
|
||||||
* @default 'indigo'
|
|
||||||
*/
|
|
||||||
primary?: string
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @default 'zinc'
|
|
||||||
*/
|
|
||||||
gray?: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface UiOptions {
|
|
||||||
/**
|
|
||||||
* @default 'tailwindui'
|
|
||||||
*/
|
|
||||||
preset?: string | object
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @default 'u'
|
|
||||||
*/
|
|
||||||
prefix?: string
|
|
||||||
|
|
||||||
colors?: UiColorsOptions
|
|
||||||
|
|
||||||
unocss?: UnocssNuxtOptions
|
|
||||||
}
|
|
||||||
|
|
||||||
export * from './toast'
|
|
||||||
Reference in New Issue
Block a user