[{"data":1,"prerenderedAt":315},["ShallowReactive",2],{"navigation_docs":3,"rule-content-\u002Fvite\u002Frules\u002Fplugin-package\u002Fnaming-conventions":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,"description":304,"diagnosticCodes":305,"docsUrl":55,"extension":306,"fix":56,"framework":307,"meta":308,"navigation":309,"pack":57,"path":311,"recommendedReplacement":119,"ruleId":58,"seo":312,"severity":59,"source":60,"sourceUrl":61,"stem":313,"why":112,"__hash__":314},"rules\u002Fvite\u002Frules\u002Fplugin-package\u002Fnaming-conventions.md","Follow Vite plugin package naming conventions",{"type":48,"value":49,"toc":295},"minimark",[50,62,67,105,109,113,117,120,124,143,147,152,155,226,229,291],[51,52],"rule-metadata",{"category":53,"diagnosticCodes":54,"docsUrl":55,"fix":56,"pack":57,"ruleId":58,"severity":59,"source":60,"sourceUrl":61},"plugins","VITE0024","https:\u002F\u002Fvite.dev\u002Fguide\u002Fapi-plugin#conventions","no","vite-doctor\u002Fvite","vite\u002Fplugin-package\u002Fnaming-conventions","warn","src\u002Frule-packs\u002Fvite\u002Frules\u002Fplugin-package.ts","https:\u002F\u002Fgithub.com\u002Fonmax\u002Fvite-doctor\u002Fblob\u002Fmain\u002Fsrc\u002Frule-packs\u002Fvite\u002Frules\u002Fplugin-package.ts",[63,64,66],"h2",{"id":65},"run-this-rule","Run this rule",[68,69,74],"pre",{"className":70,"code":71,"language":72,"meta":73,"style":73},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm vite-doctor . --framework vite --rules vite\u002Fplugin-package\u002Fnaming-conventions\n","bash","",[75,76,77],"code",{"__ignoreMap":73},[78,79,82,86,90,93,96,99,102],"span",{"class":80,"line":81},"line",1,[78,83,85],{"class":84},"sBMFI","pnpm",[78,87,89],{"class":88},"sfazB"," vite-doctor",[78,91,92],{"class":88}," .",[78,94,95],{"class":88}," --framework",[78,97,98],{"class":88}," vite",[78,100,101],{"class":88}," --rules",[78,103,104],{"class":88}," vite\u002Fplugin-package\u002Fnaming-conventions\n",[63,106,108],{"id":107},"why-it-matters","Why it matters",[110,111,112],"p",{},"Vite's plugin conventions ask Vite-only plugins to use the vite-plugin- prefix and the vite-plugin keyword. Plugins that only work with Vue, React, or Svelte should put the framework in the prefix, as in vite-plugin-vue-. Plugins that also work with Rolldown should use the rolldown-plugin- prefix and the rolldown-plugin and vite-plugin keywords; Vite 7 and earlier gave the same guidance for rollup-plugin- packages. These names and keywords are how users find plugins on npm and recognize what a package works with. The Rule runs only on a public package (not private and without bin) that declares vite as a required peer dependency and whose main entry exports a function returning a Vite plugin. Scoped packages are exempt from the prefix checks because Vite's conventions do not define a scoped form; they still need the keywords. The plugin object's name property is not checked: the conventions say nothing about its format, and vite\u002Fplugin\u002Frequire-name already reports a missing name.",[63,114,116],{"id":115},"recommended-fix","Recommended fix",[110,118,119],{},"Add the \"vite-plugin\" keyword, plus \"rolldown-plugin\" or \"rollup-plugin\" for packages with those prefixes. Use the vite-plugin- prefix, or vite-plugin-vue-, vite-plugin-react-, or vite-plugin-svelte- for framework-specific plugins. Renaming an already published package means publishing under the new name and deprecating the old one.",[63,121,123],{"id":122},"useful-links","Useful links",[125,126,127,136],"ul",{},[128,129,130],"li",{},[131,132,135],"a",{"href":55,"rel":133},[134],"nofollow","Rule reference",[128,137,138],{},[131,139,142],{"href":140,"rel":141},"https:\u002F\u002Fvite.dev\u002Fguide\u002Fapi-plugin",[134],"Vite plugin API",[63,144,146],{"id":145},"example","Example",[148,149,151],"h3",{"id":150},"use-the-vite-plugin-prefix-and-keyword","Use the Vite plugin prefix and keyword",[110,153,154],{},"Before",[68,156,160],{"className":157,"code":158,"language":159,"meta":73,"style":73},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"name\": \"my-icons\",\n  \"keywords\": [\"icons\"]\n}\n","json",[75,161,162,168,195,220],{"__ignoreMap":73},[78,163,164],{"class":80,"line":81},[78,165,167],{"class":166},"sMK4o","{\n",[78,169,171,174,178,181,184,187,190,192],{"class":80,"line":170},2,[78,172,173],{"class":166},"  \"",[78,175,177],{"class":176},"spNyl","name",[78,179,180],{"class":166},"\"",[78,182,183],{"class":166},":",[78,185,186],{"class":166}," \"",[78,188,189],{"class":88},"my-icons",[78,191,180],{"class":166},[78,193,194],{"class":166},",\n",[78,196,198,200,203,205,207,210,212,215,217],{"class":80,"line":197},3,[78,199,173],{"class":166},[78,201,202],{"class":176},"keywords",[78,204,180],{"class":166},[78,206,183],{"class":166},[78,208,209],{"class":166}," [",[78,211,180],{"class":166},[78,213,214],{"class":88},"icons",[78,216,180],{"class":166},[78,218,219],{"class":166},"]\n",[78,221,223],{"class":80,"line":222},4,[78,224,225],{"class":166},"}\n",[110,227,228],{},"After",[68,230,232],{"className":157,"code":231,"language":159,"meta":73,"style":73},"{\n  \"name\": \"vite-plugin-icons\",\n  \"keywords\": [\"vite-plugin\", \"icons\"]\n}\n",[75,233,234,238,257,287],{"__ignoreMap":73},[78,235,236],{"class":80,"line":81},[78,237,167],{"class":166},[78,239,240,242,244,246,248,250,253,255],{"class":80,"line":170},[78,241,173],{"class":166},[78,243,177],{"class":176},[78,245,180],{"class":166},[78,247,183],{"class":166},[78,249,186],{"class":166},[78,251,252],{"class":88},"vite-plugin-icons",[78,254,180],{"class":166},[78,256,194],{"class":166},[78,258,259,261,263,265,267,269,271,274,276,279,281,283,285],{"class":80,"line":197},[78,260,173],{"class":166},[78,262,202],{"class":176},[78,264,180],{"class":166},[78,266,183],{"class":166},[78,268,209],{"class":166},[78,270,180],{"class":166},[78,272,273],{"class":88},"vite-plugin",[78,275,180],{"class":166},[78,277,278],{"class":166},",",[78,280,186],{"class":166},[78,282,214],{"class":88},[78,284,180],{"class":166},[78,286,219],{"class":166},[78,288,289],{"class":80,"line":222},[78,290,225],{"class":166},[292,293,294],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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}",{"title":73,"searchDepth":170,"depth":170,"links":296},[297,298,299,300,301],{"id":65,"depth":170,"text":66},{"id":107,"depth":170,"text":108},{"id":115,"depth":170,"text":116},{"id":122,"depth":170,"text":123},{"id":145,"depth":170,"text":146,"children":302},[303],{"id":150,"depth":197,"text":151},"Checks that a published Vite plugin package uses the package name prefix and package.json keywords from Vite's plugin conventions.",[54],"md","vite",{},{"title":310},"Plugin package names","\u002Fvite\u002Frules\u002Fplugin-package\u002Fnaming-conventions",{"title":46,"description":304},"vite\u002Frules\u002Fplugin-package\u002Fnaming-conventions","ACzqe1pdly3QsK4AGM2PdA_4MXFrLNdFHkWv1arTzBQ",1791309460442]