feat(module)!: remove devtools in favor of compodium (#3380)

Co-authored-by: Benjamin Canac <canacb1@gmail.com>
This commit is contained in:
Romain Hamel
2025-02-28 15:33:13 +01:00
committed by GitHub
parent c140f5edeb
commit 7a8c00c374
103 changed files with 52 additions and 2090 deletions

View File

@@ -1,10 +1,6 @@
import { defu } from 'defu'
import { createResolver, defineNuxtModule, addComponentsDir, addImportsDir, addVitePlugin, addPlugin, installModule, extendPages, hasNuxtModule } from '@nuxt/kit'
import { addTemplates, buildTemplates } from './templates'
import { addCustomTab, startSubprocess } from '@nuxt/devtools-kit'
import sirv from 'sirv'
import { getPort } from 'get-port-please'
import { devtoolsMetaPlugin } from './devtools/meta'
import { createResolver, defineNuxtModule, addComponentsDir, addImportsDir, addVitePlugin, addPlugin, installModule, hasNuxtModule } from '@nuxt/kit'
import { addTemplates } from './templates'
import { defaultOptions, getDefaultUiConfig, resolveColors } from './defaults'
export type * from './runtime/types'
@@ -50,17 +46,6 @@ export interface ModuleOptions {
*/
transitions?: boolean
}
/**
* Configuration for the Nuxt UI devtools.
*/
devtools?: {
/**
* Enable or disable Nuxt UI devtools.
* @defaultValue `true`
*/
enabled?: boolean
}
}
export default defineNuxtModule<ModuleOptions>({
@@ -123,79 +108,5 @@ export default defineNuxtModule<ModuleOptions>({
addImportsDir(resolve('./runtime/composables'))
addTemplates(options, nuxt, resolve)
if (nuxt.options.dev && nuxt.options.devtools.enabled && options.devtools?.enabled) {
const templates = buildTemplates(options)
nuxt.options.vite = defu(nuxt.options?.vite, { plugins: [devtoolsMetaPlugin({ resolve, templates, options })] })
// Runs UI devtools in a subprocess for local development
if (process.env.NUXT_UI_DEVTOOLS_LOCAL) {
const PORT = await getPort({ port: 42124 })
nuxt.hook('app:resolve', () => {
startSubprocess(
{
command: 'pnpm',
args: ['nuxi', 'dev'],
cwd: './devtools',
stdio: 'pipe',
env: {
PORT: PORT.toString()
}
},
{
id: 'ui:devtools:local',
name: 'Nuxt UI DevTools Local',
icon: 'logos-nuxt-icon'
},
nuxt
)
})
nuxt.hook('vite:extendConfig', (config) => {
config.server ||= {}
config.server.proxy ||= {}
config.server.proxy['/__nuxt_ui__/devtools'] = {
target: `http://localhost:${PORT}`,
changeOrigin: true,
followRedirects: true,
ws: true,
rewriteWsOrigin: true
}
})
} else {
nuxt.hook('vite:serverCreated', async (server) => {
server.middlewares.use('/__nuxt_ui__/devtools', sirv(resolve('../dist/client/devtools'), {
single: true,
dev: true
}))
})
}
nuxt.options.routeRules = defu(nuxt.options.routeRules, { '/__nuxt_ui__/**': { ssr: false } })
extendPages((pages) => {
if (pages.length) {
pages.unshift({
name: 'ui-devtools',
path: '/__nuxt_ui__/components/:slug',
file: resolve('./devtools/runtime/DevtoolsRenderer.vue'),
meta: {
// https://github.com/nuxt/nuxt/pull/29366
// isolate: true
layout: false
}
})
}
})
addCustomTab({
name: 'nuxt-ui',
title: 'Nuxt UI',
icon: '/__nuxt_ui__/devtools/favicon.svg',
view: {
type: 'iframe',
src: '/__nuxt_ui__/devtools'
}
})
}
}
})