[{"data":1,"prerenderedAt":658},["ShallowReactive",2],{"toc-zh-\u002Fguide\u002Finstallation":3,"page-zh-\u002Fguide\u002Finstallation":404},{"id":4,"title":5,"body":6,"description":397,"extension":398,"meta":399,"navigation":348,"path":400,"seo":401,"stem":402,"__hash__":403},"content_zh\u002Fguide\u002Finstallation.md","安装模块",{"type":7,"value":8,"toc":388},"minimark",[9,17,22,48,67,81,85,100,166,176,183,187,191,194,206,209,217,220,224,231,307,314,332,335,384],[10,11,12,16],"p",{},[13,14,15],"strong",{},"本章目标","：在上一章创建的 Nuxt 项目中安装 Nuxt Dict 模块，并验证安装成功。",[18,19,21],"h2",{"id":20},"第-1-步安装依赖包","第 1 步：安装依赖包",[23,24,29],"pre",{"className":25,"code":26,"language":27,"meta":28,"style":28},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add @lacqjs\u002Fnuxt-dict\n","bash","",[30,31,32],"code",{"__ignoreMap":28},[33,34,37,41,45],"span",{"class":35,"line":36},"line",1,[33,38,40],{"class":39},"sBMFI","pnpm",[33,42,44],{"class":43},"sfazB"," add",[33,46,47],{"class":43}," @lacqjs\u002Fnuxt-dict\n",[10,49,50,51,54,55,58,59,62,63,66],{},"这个命令会下载 ",[30,52,53],{},"@lacqjs\u002Fnuxt-dict"," 包到 ",[30,56,57],{},"node_modules\u002F","，并在 ",[30,60,61],{},"package.json"," 的 ",[30,64,65],{},"dependencies"," 中记录这个依赖。",[68,69,70],"blockquote",{},[10,71,72,73,76,77,80],{},"Nuxt Dict 属于运行时依赖，所以用 ",[30,74,75],{},"pnpm add","（不加 ",[30,78,79],{},"-D","）。",[18,82,84],{"id":83},"第-2-步注册模块","第 2 步：注册模块",[10,86,87,88,91,92,95,96,99],{},"打开项目根目录下的 ",[30,89,90],{},"nuxt.config.ts"," 文件，把 ",[30,93,94],{},"'@lacqjs\u002Fnuxt-dict'"," 加到 ",[30,97,98],{},"modules"," 数组里：",[23,101,105],{"className":102,"code":103,"filename":90,"language":104,"meta":28,"style":28},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['@lacqjs\u002Fnuxt-dict'],\n});\n","ts",[30,106,107,128,154],{"__ignoreMap":28},[33,108,109,113,116,120,124],{"class":35,"line":36},[33,110,112],{"class":111},"s7zQu","export",[33,114,115],{"class":111}," default",[33,117,119],{"class":118},"s2Zo4"," defineNuxtConfig",[33,121,123],{"class":122},"sTEyZ","(",[33,125,127],{"class":126},"sMK4o","{\n",[33,129,131,135,138,141,144,146,148,151],{"class":35,"line":130},2,[33,132,134],{"class":133},"swJcz","  modules",[33,136,137],{"class":126},":",[33,139,140],{"class":122}," [",[33,142,143],{"class":126},"'",[33,145,53],{"class":43},[33,147,143],{"class":126},[33,149,150],{"class":122},"]",[33,152,153],{"class":126},",\n",[33,155,157,160,163],{"class":35,"line":156},3,[33,158,159],{"class":126},"}",[33,161,162],{"class":122},")",[33,164,165],{"class":126},";\n",[68,167,168],{},[10,169,170,175],{},[13,171,172,174],{},[30,173,98],{}," 是什么？"," Nuxt 的模块系统允许别人写好一个功能包，你在 modules 里注册一下就能直接用。就像给手机装 App 一样——安装 + 启用。",[10,177,178,179,182],{},"保存文件。如果 ",[30,180,181],{},"pnpm dev"," 还在运行，Nuxt 会自动检测到变化并重新加载。",[18,184,186],{"id":185},"第-3-步验证安装","第 3 步：验证安装",[188,189,190],"h3",{"id":190},"查看控制台日志",[10,192,193],{},"重新启动开发服务器（如果还没运行的话）：",[23,195,197],{"className":25,"code":196,"language":27,"meta":28,"style":28},"pnpm dev\n",[30,198,199],{"__ignoreMap":28},[33,200,201,203],{"class":35,"line":36},[33,202,40],{"class":39},[33,204,205],{"class":43}," dev\n",[10,207,208],{},"在终端中，你应该看到类似这样的日志：",[23,210,215],{"className":211,"code":213,"language":214},[212],"language-text","[nuxt-dict] 初始化模块 @lacqjs\u002Fnuxt-dict\n[nuxt-dict] @lacqjs\u002Fnuxt-dict 模块选项: { enable: true, logLevel: 3, ... }\n","text",[30,216,213],{"__ignoreMap":28},[10,218,219],{},"看到这些日志，说明模块已经成功注册并初始化了。",[188,221,223],{"id":222},"验证-typescript-支持","验证 TypeScript 支持",[10,225,226,227,230],{},"在你的 ",[30,228,229],{},"pages\u002Findex.vue"," 文件中输入：",[23,232,236],{"className":233,"code":234,"filename":229,"language":235,"meta":28,"style":28},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nconst { data } = useDict('gender');\n\u003C\u002Fscript>\n","vue",[30,237,238,266,298],{"__ignoreMap":28},[33,239,240,243,246,250,253,256,259,261,263],{"class":35,"line":36},[33,241,242],{"class":126},"\u003C",[33,244,245],{"class":133},"script",[33,247,249],{"class":248},"spNyl"," setup",[33,251,252],{"class":248}," lang",[33,254,255],{"class":126},"=",[33,257,258],{"class":126},"\"",[33,260,104],{"class":43},[33,262,258],{"class":126},[33,264,265],{"class":126},">\n",[33,267,268,271,274,277,279,282,285,287,289,292,294,296],{"class":35,"line":130},[33,269,270],{"class":248},"const",[33,272,273],{"class":126}," {",[33,275,276],{"class":122}," data ",[33,278,159],{"class":126},[33,280,281],{"class":126}," =",[33,283,284],{"class":118}," useDict",[33,286,123],{"class":122},[33,288,143],{"class":126},[33,290,291],{"class":43},"gender",[33,293,143],{"class":126},[33,295,162],{"class":122},[33,297,165],{"class":126},[33,299,300,303,305],{"class":35,"line":156},[33,301,302],{"class":126},"\u003C\u002F",[33,304,245],{"class":133},[33,306,265],{"class":126},[10,308,309,310,313],{},"如果编辑器没有报错，而且输入 ",[30,311,312],{},"useDict"," 时有自动补全提示，说明 TypeScript 类型声明也加载成功了。",[68,315,316],{},[10,317,318,325,326,331],{},[13,319,320,321,324],{},"为什么没有配置 ",[30,322,323],{},"dict: {}"," 也可以用？"," 模块的所有配置项都有默认值。后面 ",[327,328,330],"a",{"href":329},"\u002Fadvanced\u002Ffull-config","配置全解"," 章节会详细讲解每个配置项。",[18,333,334],{"id":334},"本章你学会了",[336,337,340,355,366,372],"ul",{"className":338},[339],"contains-task-list",[341,342,345,350,351,354],"li",{"className":343},[344],"task-list-item",[346,347],"input",{"disabled":348,"type":349},true,"checkbox"," 用 ",[30,352,353],{},"pnpm add @lacqjs\u002Fnuxt-dict"," 安装字典模块",[341,356,358,360,361,62,363,365],{"className":357},[344],[346,359],{"disabled":348,"type":349}," 在 ",[30,362,90],{},[30,364,98],{}," 中注册模块",[341,367,369,371],{"className":368},[344],[346,370],{"disabled":348,"type":349}," 通过控制台日志验证模块初始化成功",[341,373,375,360,377,380,381,383],{"className":374},[344],[346,376],{"disabled":348,"type":349},[30,378,379],{},".vue"," 文件中使用 ",[30,382,312],{}," 并确认类型提示正常",[385,386,387],"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 .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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":28,"searchDepth":130,"depth":130,"links":389},[390,391,392,396],{"id":20,"depth":130,"text":21},{"id":83,"depth":130,"text":84},{"id":185,"depth":130,"text":186,"children":393},[394,395],{"id":190,"depth":156,"text":190},{"id":222,"depth":156,"text":223},{"id":334,"depth":130,"text":334},"将 @lacqjs\u002Fnuxt-dict 安装到你的 Nuxt 项目中。","md",{},"\u002Fguide\u002Finstallation",{"title":5,"description":397},"guide\u002Finstallation","Yg2SqnzFzISAwl6q87wITGkeiZ8FA5hjDEfm3YXYa-I",{"id":4,"title":5,"body":405,"description":397,"extension":398,"meta":656,"navigation":348,"path":400,"seo":657,"stem":402,"__hash__":403},{"type":7,"value":406,"toc":647},[407,411,413,425,435,443,445,453,495,503,507,509,511,513,523,525,530,532,534,538,596,600,610,612,645],[10,408,409,16],{},[13,410,15],{},[18,412,21],{"id":20},[23,414,415],{"className":25,"code":26,"language":27,"meta":28,"style":28},[30,416,417],{"__ignoreMap":28},[33,418,419,421,423],{"class":35,"line":36},[33,420,40],{"class":39},[33,422,44],{"class":43},[33,424,47],{"class":43},[10,426,50,427,54,429,58,431,62,433,66],{},[30,428,53],{},[30,430,57],{},[30,432,61],{},[30,434,65],{},[68,436,437],{},[10,438,72,439,76,441,80],{},[30,440,75],{},[30,442,79],{},[18,444,84],{"id":83},[10,446,87,447,91,449,95,451,99],{},[30,448,90],{},[30,450,94],{},[30,452,98],{},[23,454,455],{"className":102,"code":103,"filename":90,"language":104,"meta":28,"style":28},[30,456,457,469,487],{"__ignoreMap":28},[33,458,459,461,463,465,467],{"class":35,"line":36},[33,460,112],{"class":111},[33,462,115],{"class":111},[33,464,119],{"class":118},[33,466,123],{"class":122},[33,468,127],{"class":126},[33,470,471,473,475,477,479,481,483,485],{"class":35,"line":130},[33,472,134],{"class":133},[33,474,137],{"class":126},[33,476,140],{"class":122},[33,478,143],{"class":126},[33,480,53],{"class":43},[33,482,143],{"class":126},[33,484,150],{"class":122},[33,486,153],{"class":126},[33,488,489,491,493],{"class":35,"line":156},[33,490,159],{"class":126},[33,492,162],{"class":122},[33,494,165],{"class":126},[68,496,497],{},[10,498,499,175],{},[13,500,501,174],{},[30,502,98],{},[10,504,178,505,182],{},[30,506,181],{},[18,508,186],{"id":185},[188,510,190],{"id":190},[10,512,193],{},[23,514,515],{"className":25,"code":196,"language":27,"meta":28,"style":28},[30,516,517],{"__ignoreMap":28},[33,518,519,521],{"class":35,"line":36},[33,520,40],{"class":39},[33,522,205],{"class":43},[10,524,208],{},[23,526,528],{"className":527,"code":213,"language":214},[212],[30,529,213],{"__ignoreMap":28},[10,531,219],{},[188,533,223],{"id":222},[10,535,226,536,230],{},[30,537,229],{},[23,539,540],{"className":233,"code":234,"filename":229,"language":235,"meta":28,"style":28},[30,541,542,562,588],{"__ignoreMap":28},[33,543,544,546,548,550,552,554,556,558,560],{"class":35,"line":36},[33,545,242],{"class":126},[33,547,245],{"class":133},[33,549,249],{"class":248},[33,551,252],{"class":248},[33,553,255],{"class":126},[33,555,258],{"class":126},[33,557,104],{"class":43},[33,559,258],{"class":126},[33,561,265],{"class":126},[33,563,564,566,568,570,572,574,576,578,580,582,584,586],{"class":35,"line":130},[33,565,270],{"class":248},[33,567,273],{"class":126},[33,569,276],{"class":122},[33,571,159],{"class":126},[33,573,281],{"class":126},[33,575,284],{"class":118},[33,577,123],{"class":122},[33,579,143],{"class":126},[33,581,291],{"class":43},[33,583,143],{"class":126},[33,585,162],{"class":122},[33,587,165],{"class":126},[33,589,590,592,594],{"class":35,"line":156},[33,591,302],{"class":126},[33,593,245],{"class":133},[33,595,265],{"class":126},[10,597,309,598,313],{},[30,599,312],{},[68,601,602],{},[10,603,604,325,608,331],{},[13,605,320,606,324],{},[30,607,323],{},[327,609,330],{"href":329},[18,611,334],{"id":334},[336,613,615,622,631,636],{"className":614},[339],[341,616,618,350,620,354],{"className":617},[344],[346,619],{"disabled":348,"type":349},[30,621,353],{},[341,623,625,360,627,62,629,365],{"className":624},[344],[346,626],{"disabled":348,"type":349},[30,628,90],{},[30,630,98],{},[341,632,634,371],{"className":633},[344],[346,635],{"disabled":348,"type":349},[341,637,639,360,641,380,643,383],{"className":638},[344],[346,640],{"disabled":348,"type":349},[30,642,379],{},[30,644,312],{},[385,646,387],{},{"title":28,"searchDepth":130,"depth":130,"links":648},[649,650,651,655],{"id":20,"depth":130,"text":21},{"id":83,"depth":130,"text":84},{"id":185,"depth":130,"text":186,"children":652},[653,654],{"id":190,"depth":156,"text":190},{"id":222,"depth":156,"text":223},{"id":334,"depth":130,"text":334},{},{"title":5,"description":397},1782551377793]