Skip to content

Commit

Permalink
fix: vue-devtools runtime injection, close #667
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu committed Feb 5, 2025
1 parent 87a1e86 commit 1888974
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 31 deletions.
6 changes: 3 additions & 3 deletions packages/devtools/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"dist"
],
"scripts": {
"build": "pnpm dev:prepare && pnpm build:module && pnpm build:discovery && pnpm build:client && esno scripts/prepare.ts",
"build": "pnpm dev:prepare && pnpm build:module && pnpm build:discovery && pnpm build:client",
"build:client": "nuxi generate client",
"build:module": "nuxt-build-module build",
"build:discovery": "npx discovery-build -c .discoveryrc.cjs -s -o client/public/discovery",
Expand All @@ -48,6 +48,8 @@
"@nuxt/devtools-kit": "workspace:*",
"@nuxt/devtools-wizard": "workspace:*",
"@nuxt/kit": "catalog:",
"@vue/devtools-core": "catalog:",
"@vue/devtools-kit": "catalog:",
"birpc": "catalog:",
"consola": "catalog:",
"destr": "catalog:",
Expand Down Expand Up @@ -98,8 +100,6 @@
"@unocss/runtime": "catalog:",
"@vitest/ui": "catalog:",
"@vue/devtools-applet": "catalog:",
"@vue/devtools-core": "catalog:",
"@vue/devtools-kit": "catalog:",
"@vueuse/nuxt": "catalog:",
"@xterm/addon-fit": "catalog:",
"@xterm/xterm": "catalog:",
Expand Down
23 changes: 5 additions & 18 deletions packages/devtools/src/integrations/vue-devtools.ts
Original file line number Diff line number Diff line change
@@ -1,28 +1,15 @@
import type { NuxtDevtoolsServerContext } from '../types'
import { addVitePlugin } from '@nuxt/kit'
import { addPluginTemplate } from '@nuxt/kit'
import { join } from 'pathe'
import { runtimeDir } from '../dirs'

export function setup({ nuxt }: NuxtDevtoolsServerContext) {
if (!nuxt.options.dev || nuxt.options.test)
return

addVitePlugin({
name: 'vue:devtools',
async resolveId(importee: string) {
if (importee.startsWith('virtual:vue-devtools-path:')) {
const resolved = importee.replace('virtual:vue-devtools-path:', join(runtimeDir, 'vue-devtools/'))
return resolved
}
},
transform(code, id, options) {
const [filename] = id.split('?', 2)
const appendTo = /\/entry\.m?js$/

if (!options?.ssr && appendTo.test(filename))
code = `import 'virtual:vue-devtools-path:overlay.js';\n${code}`

return code
},
addPluginTemplate({
name: 'vue-devtools-client',
mode: 'client',
src: join(runtimeDir, 'vue-devtools-client.js'),
})
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import { functions } from '@vue/devtools-core'
import { createRpcServer, devtools } from '@vue/devtools-kit'

devtools.init()
export default () => {
devtools.init()

createRpcServer(functions, {
preset: 'iframe',
})
createRpcServer(functions, {
preset: 'iframe',
})
}
12 changes: 6 additions & 6 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 1888974

Please sign in to comment.