[{"data":1,"prerenderedAt":334},["ShallowReactive",2],{"navigation_docs":3,"diagnostic-content-NUXT0083":44},[4,8,12,16,20,24,28,32,36,40],{"title":5,"path":6,"stem":7},"CLI","\u002Fcli","1.cli",{"title":9,"path":10,"stem":11},"Nuxt","\u002Fnuxt","2.nuxt",{"title":13,"path":14,"stem":15},"Vue","\u002Fvue","3.vue",{"title":17,"path":18,"stem":19},"Vite","\u002Fvite","4.vite",{"title":21,"path":22,"stem":23},"Nitro","\u002Fnitro","5.nitro",{"title":25,"path":26,"stem":27},"TypeScript","\u002Ftypescript","6.typescript",{"title":29,"path":30,"stem":31},"shadcn","\u002Fshadcn","7.shadcn",{"title":33,"path":34,"stem":35},"Package","\u002Fpackage","8.package",{"title":37,"path":38,"stem":39},"Extending Doctor","\u002Fextending","9.extending",{"title":41,"path":42,"stem":43},"Pinia","\u002Fpinia","9.pinia",{"id":45,"title":46,"body":47,"category":53,"code":325,"description":326,"docsUrl":54,"extension":327,"fix":77,"framework":328,"meta":329,"navigation":213,"pack":56,"path":330,"ruleId":57,"rulePath":58,"seo":331,"severity":59,"source":60,"sourceUrl":61,"stem":332,"why":70,"__hash__":333},"diagnostics\u002Fdiagnostics\u002FNUXT0083.md","NUXT0083: Import Nuxt helpers explicitly in module runtime files",{"type":48,"value":49,"toc":315},"minimark",[50,62,67,71,75,78,82,87,90,166,169,251,255,258,283,287,299,303,311],[51,52],"rule-metadata",{"category":53,"docsUrl":54,"fix":55,"pack":56,"ruleId":57,"rulePath":58,"severity":59,"source":60,"sourceUrl":61},"modules","https:\u002F\u002Fnuxt.com\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy#add-runtime-code","safe","vite-doctor\u002Fnuxt","nuxt\u002Fmodule\u002Fexplicit-runtime-imports","\u002Fnuxt\u002Frules\u002Fmodule\u002Fexplicit-runtime-imports","error","src\u002Frule-packs\u002Fnuxt\u002Frules\u002Fnuxt\u002Fmodule-explicit-runtime-imports.ts","https:\u002F\u002Fgithub.com\u002Fonmax\u002Fvite-doctor\u002Fblob\u002Fmain\u002Fsrc\u002Frule-packs\u002Fnuxt\u002Frules\u002Fnuxt\u002Fmodule-explicit-runtime-imports.ts",[63,64,66],"h2",{"id":65},"why-it-happens","Why it happens",[68,69,70],"p",{},"Nuxt and Nitro skip auto-import transforms for files inside node_modules, where a published module's runtime directory lives. The module playground links the source, so auto-imports work during development and the missing import only fails as a ReferenceError in projects that install the module. Doctor checks files under the runtime directory next to the module entry, such as src\u002Fruntime\u002F, and skips local modules and packages that are also Nuxt layers because Nuxt still transforms those.",[63,72,74],{"id":73},"fix","Fix",[68,76,77],{},"Import runtime helpers explicitly from #imports, or from their source package such as vue or h3.",[63,79,81],{"id":80},"example","Example",[83,84,86],"h3",{"id":85},"import-runtime-helpers-in-a-module-plugin","Import runtime helpers in a module plugin",[68,88,89],{},"Before",[91,92,97],"pre",{"className":93,"code":94,"language":95,"meta":96,"style":96},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F src\u002Fruntime\u002Fplugin.ts\nexport default defineNuxtPlugin(() => {\n  const config = useRuntimeConfig()\n})\n","ts","",[98,99,100,109,138,157],"code",{"__ignoreMap":96},[101,102,105],"span",{"class":103,"line":104},"line",1,[101,106,108],{"class":107},"sHwdD","\u002F\u002F src\u002Fruntime\u002Fplugin.ts\n",[101,110,112,116,119,123,127,131,135],{"class":103,"line":111},2,[101,113,115],{"class":114},"s7zQu","export",[101,117,118],{"class":114}," default",[101,120,122],{"class":121},"s2Zo4"," defineNuxtPlugin",[101,124,126],{"class":125},"sTEyZ","(",[101,128,130],{"class":129},"sMK4o","()",[101,132,134],{"class":133},"spNyl"," =>",[101,136,137],{"class":129}," {\n",[101,139,141,144,147,150,153],{"class":103,"line":140},3,[101,142,143],{"class":133},"  const",[101,145,146],{"class":125}," config",[101,148,149],{"class":129}," =",[101,151,152],{"class":121}," useRuntimeConfig",[101,154,156],{"class":155},"swJcz","()\n",[101,158,160,163],{"class":103,"line":159},4,[101,161,162],{"class":129},"}",[101,164,165],{"class":125},")\n",[68,167,168],{},"After",[91,170,172],{"className":93,"code":171,"language":95,"meta":96,"style":96},"\u002F\u002F src\u002Fruntime\u002Fplugin.ts\nimport { defineNuxtPlugin, useRuntimeConfig } from '#imports'\n\nexport default defineNuxtPlugin(() => {\n  const config = useRuntimeConfig()\n})\n",[98,173,174,178,209,215,231,244],{"__ignoreMap":96},[101,175,176],{"class":103,"line":104},[101,177,108],{"class":107},[101,179,180,183,186,188,191,193,196,199,202,206],{"class":103,"line":111},[101,181,182],{"class":114},"import",[101,184,185],{"class":129}," {",[101,187,122],{"class":125},[101,189,190],{"class":129},",",[101,192,152],{"class":125},[101,194,195],{"class":129}," }",[101,197,198],{"class":114}," from",[101,200,201],{"class":129}," '",[101,203,205],{"class":204},"sfazB","#imports",[101,207,208],{"class":129},"'\n",[101,210,211],{"class":103,"line":140},[101,212,214],{"emptyLinePlaceholder":213},true,"\n",[101,216,217,219,221,223,225,227,229],{"class":103,"line":159},[101,218,115],{"class":114},[101,220,118],{"class":114},[101,222,122],{"class":121},[101,224,126],{"class":125},[101,226,130],{"class":129},[101,228,134],{"class":133},[101,230,137],{"class":129},[101,232,234,236,238,240,242],{"class":103,"line":233},5,[101,235,143],{"class":133},[101,237,146],{"class":125},[101,239,149],{"class":129},[101,241,152],{"class":121},[101,243,156],{"class":155},[101,245,247,249],{"class":103,"line":246},6,[101,248,162],{"class":129},[101,250,165],{"class":125},[63,252,254],{"id":253},"verify-the-fix","Verify the fix",[68,256,257],{},"Run only this rule after editing so the report stays focused on the diagnostic you are closing:",[91,259,263],{"className":260,"code":261,"language":262,"meta":96,"style":96},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm nuxt doctor --rules nuxt\u002Fmodule\u002Fexplicit-runtime-imports\n","bash",[98,264,265],{"__ignoreMap":96},[101,266,267,271,274,277,280],{"class":103,"line":104},[101,268,270],{"class":269},"sBMFI","pnpm",[101,272,273],{"class":204}," nuxt",[101,275,276],{"class":204}," doctor",[101,278,279],{"class":204}," --rules",[101,281,282],{"class":204}," nuxt\u002Fmodule\u002Fexplicit-runtime-imports\n",[63,284,286],{"id":285},"useful-links","Useful links",[288,289,290],"ul",{},[291,292,293],"li",{},[294,295,298],"a",{"href":54,"rel":296},[297],"nofollow","Upstream docs",[63,300,302],{"id":301},"related-rule","Related rule",[288,304,305],{},[291,306,307],{},[294,308,309],{"href":58},[98,310,57],{},[312,313,314],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":96,"searchDepth":111,"depth":111,"links":316},[317,318,319,322,323,324],{"id":65,"depth":111,"text":66},{"id":73,"depth":111,"text":74},{"id":80,"depth":111,"text":81,"children":320},[321],{"id":85,"depth":140,"text":86},{"id":253,"depth":111,"text":254},{"id":285,"depth":111,"text":286},{"id":301,"depth":111,"text":302},"NUXT0083","Finds runtime files of a published Nuxt module package that call Nuxt, Vue, Nitro, or h3 auto-imports without importing them.","md","nuxt",{},"\u002Fdiagnostics\u002Fnuxt0083",{"title":46,"description":326},"diagnostics\u002FNUXT0083","WRhhdeXsGERID-eQcWE76TEv2uDevN6UijAtPxX30A8",1791309502361]