JSPM

vite-plugin-vue-tracer

0.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 339717
  • Score
    100M100P100Q181775F
  • License MIT

Tracer for the source code of elements and vdoms in Vue SFC

Package Exports

    Readme

    vite-plugin-vue-tracer

    npm version npm downloads bundle JSDocs License

    Tracer for the source code of elements and vdoms in Vue SFC.

    This is a designed to be a replacement of vite-plugin-vue-inspector with a new approach, that utilize Vite's internal source map to resolve the source location, without injecting data-attributes to the DOM.

    This plugin is also designed to be more modular, where you can use it as a standalone inspector plugin, or as a headless APIs to build your own inspector.

    Usage

    npm i -D vite-plugin-vue-tracer
    import { defineConfig } from 'vite'
    import { VueTracer } from 'vite-plugin-vue-tracer'
    
    export default defineConfig({
      plugins: [
        VueTracer(),
      ],
    })

    In the your entry file, add the following code:

    // Only apply in development
    if (import.meta.hot) {
      import('vite-plugin-vue-tracer/client/overlay').then(({ events, isEnabled }) => {
        events.on('hover', (info) => {
          // ...
        })
    
        events.on('click', (info) => {
          // ...
          openInEditor(info.fullpath) // 'src/app.vue:10:1'
        })
      })
    }

    Of if you want headless APIs, import vite-plugin-vue-tracer/client/record instead.

    if (import.meta.hot) {
      import('vite-plugin-vue-tracer/client/record')
        .then(({
          findTraceFromElement,
          findraceFromVNode,
          findTraceAtPointer,
        }) => {
          const el = document.querySelector('.foo')
          const trace = findTraceFromElement(el)
          if (trace) {
            console.log(trace)
          }
        })
    }

    Sponsors

    License

    MIT License © Anthony Fu