[{"data":1,"prerenderedAt":4634},["ShallowReactive",2],{"plugins":3,"$fHjgHa7JiU-d4Y7-UUOZrPzQNVV1ZtTpFamuCTA6rKQ0":1968,"-docs-build-basic-usage-configuration":2608,"-docs-build-basic-usage-configuration-surround":4629},[4,214,363,504,627,764,902,1041,1145,1284,1422,1564,1700,1835],{"id":5,"title":6,"_id":7,"_partial":8,"_path":7,"body":9,"categories":7,"category":150,"contributors":151,"description":19,"extension":188,"github":131,"icon":189,"learn_more":7,"maintainers":190,"meta":199,"name":200,"navigation":201,"npm":6,"path":202,"repo":203,"seo":204,"sponsor":8,"stats":205,"stem":211,"type":212,"website":131,"__hash__":213},"plugins\u002Fplugins\u002Fa11y.md","@nuxt\u002Fa11y",null,false,{"type":10,"value":11,"toc":145},"minimark",[12,16,20,24,50,53,60,119,122,141],[13,14,6],"h1",{"id":15},"nuxta11y",[17,18,19],"p",{},"在开发期间在浏览器中提供实时可访问性反馈和自动测试。",[21,22,23],"h2",{"id":23},"安装",[25,26,31],"pre",{"className":27,"code":28,"language":29,"meta":30,"style":30},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npm install @nuxt\u002Fa11y\n","bash","",[32,33,34],"code",{"__ignoreMap":30},[35,36,39,43,47],"span",{"class":37,"line":38},"line",1,[35,40,42],{"class":41},"s52Pk","npm",[35,44,46],{"class":45},"sGFVr"," install",[35,48,49],{"class":45}," @nuxt\u002Fa11y\n",[21,51,52],{"id":52},"使用",[17,54,55,56,59],{},"将插件添加到您的 ",[32,57,58],{},"nuxt.config.ts",":",[25,61,65],{"className":62,"code":63,"language":64,"meta":30,"style":30},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fa11y']\n})\n","ts",[32,66,67,88,110],{"__ignoreMap":30},[35,68,69,73,76,80,84],{"class":37,"line":38},[35,70,72],{"class":71},"s8R28","export",[35,74,75],{"class":71}," default",[35,77,79],{"class":78},"s3cPz"," defineNuxtConfig",[35,81,83],{"class":82},"sZSNi","(",[35,85,87],{"class":86},"sDfIl","{\n",[35,89,91,95,97,100,103,105,107],{"class":37,"line":90},2,[35,92,94],{"class":93},"sRlkE","  modules",[35,96,59],{"class":86},[35,98,99],{"class":82}," [",[35,101,102],{"class":86},"'",[35,104,6],{"class":45},[35,106,102],{"class":86},[35,108,109],{"class":82},"]\n",[35,111,113,116],{"class":37,"line":112},3,[35,114,115],{"class":86},"}",[35,117,118],{"class":82},")\n",[21,120,121],{"id":121},"链接",[123,124,125,135],"ul",{},[126,127,128],"li",{},[129,130,134],"a",{"href":131,"rel":132},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fa11y",[133],"nofollow","文档",[126,136,137],{},[129,138,140],{"href":131,"rel":139},[133],"GitHub",[142,143,144],"style",{},"html pre.shiki code .s52Pk, html code.shiki .s52Pk{--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B}html pre.shiki code .sGFVr, html code.shiki .sGFVr{--shiki-light:#91B859;--shiki-default:#91B859;--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 .s8R28, html code.shiki .s8R28{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s3cPz, html code.shiki .s3cPz{--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF}html pre.shiki code .sZSNi, html code.shiki .sZSNi{--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8}html pre.shiki code .sDfIl, html code.shiki .sDfIl{--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF}html pre.shiki code .sRlkE, html code.shiki .sRlkE{--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178}",{"title":30,"searchDepth":90,"depth":90,"links":146},[147,148,149],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Devtools",[152,155,158,161,165,169,173,177,180,184],{"id":38,"username":153,"contributions":154},"user99376",43,{"id":90,"username":156,"contributions":157},"user86649",16,{"id":112,"username":159,"contributions":160},"user49829",57,{"id":162,"username":163,"contributions":164},4,"user72634",14,{"id":166,"username":167,"contributions":168},5,"user28650",92,{"id":170,"username":171,"contributions":172},6,"user8758",55,{"id":174,"username":175,"contributions":176},7,"user74896",89,{"id":178,"username":179,"contributions":160},8,"user51798",{"id":181,"username":182,"contributions":183},9,"user67000",32,{"id":185,"username":186,"contributions":187},10,"user11627",36,"md","nuxt.svg",[191,195],{"name":192,"github":193,"bluesky":194},"Tim Damen","timdamen","timdamen.io",{"name":196,"github":197,"bluesky":198},"Daniel Roe","danielroe","danielroe.dev",{},"a11y",true,"\u002Fplugins\u002Fa11y","nuxt\u002Fa11y",{"title":6,"description":19},{"downloads":206,"stars":207,"watchers":208,"forks":209,"defaultBranch":210},2272902,36407,4858,1470,"main","plugins\u002Fa11y","official","YLxALoH_wZAsqCG6CMMXV7CM10sA6Y-aWquupJl5GMM",{"id":215,"title":216,"_id":7,"_partial":8,"_path":7,"body":217,"categories":7,"category":309,"contributors":310,"description":224,"extension":188,"github":300,"icon":189,"learn_more":7,"maintainers":338,"meta":351,"name":352,"navigation":201,"npm":216,"path":353,"repo":354,"seo":355,"sponsor":8,"stats":356,"stem":361,"type":212,"website":294,"__hash__":362},"plugins\u002Fplugins\u002Fcontent.md","@nuxt\u002Fcontent",{"type":10,"value":218,"toc":304},[219,222,225,227,241,243,247,286,288,302],[13,220,216],{"id":221},"nuxtcontent",[17,223,224],{},"基于文件的 CMS，支持 Markdown、YAML、JSON。",[21,226,23],{"id":23},[25,228,230],{"className":27,"code":229,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Fcontent\n",[32,231,232],{"__ignoreMap":30},[35,233,234,236,238],{"class":37,"line":38},[35,235,42],{"class":41},[35,237,46],{"class":45},[35,239,240],{"class":45}," @nuxt\u002Fcontent\n",[21,242,52],{"id":52},[17,244,55,245,59],{},[32,246,58],{},[25,248,250],{"className":62,"code":249,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fcontent']\n})\n",[32,251,252,264,280],{"__ignoreMap":30},[35,253,254,256,258,260,262],{"class":37,"line":38},[35,255,72],{"class":71},[35,257,75],{"class":71},[35,259,79],{"class":78},[35,261,83],{"class":82},[35,263,87],{"class":86},[35,265,266,268,270,272,274,276,278],{"class":37,"line":90},[35,267,94],{"class":93},[35,269,59],{"class":86},[35,271,99],{"class":82},[35,273,102],{"class":86},[35,275,216],{"class":45},[35,277,102],{"class":86},[35,279,109],{"class":82},[35,281,282,284],{"class":37,"line":112},[35,283,115],{"class":86},[35,285,118],{"class":82},[21,287,121],{"id":121},[123,289,290,296],{},[126,291,292],{},[129,293,134],{"href":294,"rel":295},"https:\u002F\u002Fcontent.nuxt.com",[133],[126,297,298],{},[129,299,140],{"href":300,"rel":301},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fcontent",[133],[142,303,144],{},{"title":30,"searchDepth":90,"depth":90,"links":305},[306,307,308],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"CMS",[311,314,317,319,322,324,327,330,333,335],{"id":38,"username":312,"contributions":313},"user13979",60,{"id":90,"username":315,"contributions":316},"user10947",52,{"id":112,"username":318,"contributions":187},"user11345",{"id":162,"username":320,"contributions":321},"user77708",64,{"id":166,"username":323,"contributions":183},"user96159",{"id":170,"username":325,"contributions":326},"user10252",65,{"id":174,"username":328,"contributions":329},"user88319",37,{"id":178,"username":331,"contributions":332},"user83651",74,{"id":181,"username":334,"contributions":183},"user76515",{"id":185,"username":336,"contributions":337},"user63596",73,[339,343,347],{"name":340,"github":341,"bluesky":342},"Farnabaz","farnabaz","farnabaz.dev",{"name":344,"github":345,"bluesky":346},"Baptiste Leproux","larbish","larbish.bsky.social",{"name":348,"github":349,"bluesky":350},"Sébastien Chopin","Atinux","atinux.com",{},"content","\u002Fplugins\u002Fcontent","nuxt\u002Fcontent#main",{"title":216,"description":224},{"downloads":357,"stars":358,"watchers":359,"forks":360,"defaultBranch":210},201400,37560,3723,499,"plugins\u002Fcontent","MPWexsb65o956t8kAcciteLzN5MYNwClRrI_CaJBSKg",{"id":364,"title":365,"_id":7,"_partial":8,"_path":7,"body":366,"categories":7,"category":150,"contributors":458,"description":373,"extension":188,"github":449,"icon":189,"learn_more":7,"maintainers":487,"meta":492,"name":493,"navigation":201,"npm":365,"path":494,"repo":495,"seo":496,"sponsor":8,"stats":497,"stem":502,"type":212,"website":443,"__hash__":503},"plugins\u002Fplugins\u002Fdevtools.md","@nuxt\u002Fdevtools",{"type":10,"value":367,"toc":453},[368,371,374,376,390,392,396,435,437,451],[13,369,365],{"id":370},"nuxtdevtools",[17,372,373],{},"帮助您更好地了解 Nuxt 应用程序的可视化工具。",[21,375,23],{"id":23},[25,377,379],{"className":27,"code":378,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Fdevtools\n",[32,380,381],{"__ignoreMap":30},[35,382,383,385,387],{"class":37,"line":38},[35,384,42],{"class":41},[35,386,46],{"class":45},[35,388,389],{"class":45}," @nuxt\u002Fdevtools\n",[21,391,52],{"id":52},[17,393,55,394,59],{},[32,395,58],{},[25,397,399],{"className":62,"code":398,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fdevtools']\n})\n",[32,400,401,413,429],{"__ignoreMap":30},[35,402,403,405,407,409,411],{"class":37,"line":38},[35,404,72],{"class":71},[35,406,75],{"class":71},[35,408,79],{"class":78},[35,410,83],{"class":82},[35,412,87],{"class":86},[35,414,415,417,419,421,423,425,427],{"class":37,"line":90},[35,416,94],{"class":93},[35,418,59],{"class":86},[35,420,99],{"class":82},[35,422,102],{"class":86},[35,424,365],{"class":45},[35,426,102],{"class":86},[35,428,109],{"class":82},[35,430,431,433],{"class":37,"line":112},[35,432,115],{"class":86},[35,434,118],{"class":82},[21,436,121],{"id":121},[123,438,439,445],{},[126,440,441],{},[129,442,134],{"href":443,"rel":444},"https:\u002F\u002Fdevtools.nuxt.com",[133],[126,446,447],{},[129,448,140],{"href":449,"rel":450},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fdevtools",[133],[142,452,144],{},{"title":30,"searchDepth":90,"depth":90,"links":454},[455,456,457],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},[459,462,464,467,470,473,476,479,482,485],{"id":38,"username":460,"contributions":461},"user84341",23,{"id":90,"username":463,"contributions":174},"user10137",{"id":112,"username":465,"contributions":466},"user19110",67,{"id":162,"username":468,"contributions":469},"user69842",54,{"id":166,"username":471,"contributions":472},"user65163",29,{"id":170,"username":474,"contributions":475},"user87690",77,{"id":174,"username":477,"contributions":478},"user48871",99,{"id":178,"username":480,"contributions":481},"user11541",97,{"id":181,"username":483,"contributions":484},"user31909",90,{"id":185,"username":486,"contributions":332},"user72693",[488],{"name":489,"github":490,"bluesky":491},"Anthony Fu","antfu","antfu.me",{},"devtools","\u002Fplugins\u002Fdevtools","nuxt\u002Fdevtools#main\u002Fpackages\u002Fdevtools",{"title":365,"description":373},{"downloads":498,"stars":499,"watchers":500,"forks":501,"defaultBranch":210},338641,49933,433,225,"plugins\u002Fdevtools","TT6qV1tkhfILzk2j1f23tBPQu61DhF4FgXZ3Ap8Ntt0",{"id":505,"title":506,"_id":7,"_partial":8,"_path":7,"body":507,"categories":7,"category":150,"contributors":606,"description":514,"extension":188,"github":590,"icon":189,"learn_more":596,"maintainers":613,"meta":615,"name":616,"navigation":201,"npm":506,"path":617,"repo":618,"seo":619,"sponsor":8,"stats":620,"stem":625,"type":212,"website":584,"__hash__":626},"plugins\u002Fplugins\u002Feslint.md","@nuxt\u002Feslint",{"type":10,"value":508,"toc":601},[509,512,515,517,531,533,537,576,578,599],[13,510,506],{"id":511},"nuxteslint",[17,513,514],{},"项目感知、易于使用、可扩展且面向未来的 ESLint 集成。",[21,516,23],{"id":23},[25,518,520],{"className":27,"code":519,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Feslint\n",[32,521,522],{"__ignoreMap":30},[35,523,524,526,528],{"class":37,"line":38},[35,525,42],{"class":41},[35,527,46],{"class":45},[35,529,530],{"class":45}," @nuxt\u002Feslint\n",[21,532,52],{"id":52},[17,534,55,535,59],{},[32,536,58],{},[25,538,540],{"className":62,"code":539,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Feslint']\n})\n",[32,541,542,554,570],{"__ignoreMap":30},[35,543,544,546,548,550,552],{"class":37,"line":38},[35,545,72],{"class":71},[35,547,75],{"class":71},[35,549,79],{"class":78},[35,551,83],{"class":82},[35,553,87],{"class":86},[35,555,556,558,560,562,564,566,568],{"class":37,"line":90},[35,557,94],{"class":93},[35,559,59],{"class":86},[35,561,99],{"class":82},[35,563,102],{"class":86},[35,565,506],{"class":45},[35,567,102],{"class":86},[35,569,109],{"class":82},[35,571,572,574],{"class":37,"line":112},[35,573,115],{"class":86},[35,575,118],{"class":82},[21,577,121],{"id":121},[123,579,580,586,592],{},[126,581,582],{},[129,583,134],{"href":584,"rel":585},"https:\u002F\u002Feslint.nuxt.com",[133],[126,587,588],{},[129,589,140],{"href":590,"rel":591},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Feslint",[133],[126,593,594],{},[129,595,598],{"href":596,"rel":597},"https:\u002F\u002Feslint.nuxt.com\u002Fpackages\u002Fmodule",[133],"了解更多",[142,600,144],{},{"title":30,"searchDepth":90,"depth":90,"links":602},[603,604,605],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},[607,610],{"id":38,"username":608,"contributions":609},"user30113",84,{"id":90,"username":611,"contributions":612},"user63757",82,[614],{"name":489,"github":490,"bluesky":491},{},"eslint","\u002Fplugins\u002Feslint","nuxt\u002Feslint",{"title":506,"description":514},{"downloads":621,"stars":622,"watchers":623,"forks":624,"defaultBranch":210},4219129,40472,1319,493,"plugins\u002Feslint","y2i5lamEk99gHsmaCVBOf7SwD-h3Q5biJ5CqBsfaDlQ",{"id":628,"title":629,"_id":7,"_partial":8,"_path":7,"body":630,"categories":7,"category":722,"contributors":723,"description":637,"extension":188,"github":713,"icon":189,"learn_more":7,"maintainers":750,"meta":752,"name":753,"navigation":201,"npm":629,"path":754,"repo":755,"seo":756,"sponsor":8,"stats":757,"stem":762,"type":212,"website":707,"__hash__":763},"plugins\u002Fplugins\u002Ffonts.md","@nuxt\u002Ffonts",{"type":10,"value":631,"toc":717},[632,635,638,640,654,656,660,699,701,715],[13,633,629],{"id":634},"nuxtfonts",[17,636,637],{},"添加自定义 Web 字体，注重性能。",[21,639,23],{"id":23},[25,641,643],{"className":27,"code":642,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Ffonts\n",[32,644,645],{"__ignoreMap":30},[35,646,647,649,651],{"class":37,"line":38},[35,648,42],{"class":41},[35,650,46],{"class":45},[35,652,653],{"class":45}," @nuxt\u002Ffonts\n",[21,655,52],{"id":52},[17,657,55,658,59],{},[32,659,58],{},[25,661,663],{"className":62,"code":662,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Ffonts']\n})\n",[32,664,665,677,693],{"__ignoreMap":30},[35,666,667,669,671,673,675],{"class":37,"line":38},[35,668,72],{"class":71},[35,670,75],{"class":71},[35,672,79],{"class":78},[35,674,83],{"class":82},[35,676,87],{"class":86},[35,678,679,681,683,685,687,689,691],{"class":37,"line":90},[35,680,94],{"class":93},[35,682,59],{"class":86},[35,684,99],{"class":82},[35,686,102],{"class":86},[35,688,629],{"class":45},[35,690,102],{"class":86},[35,692,109],{"class":82},[35,694,695,697],{"class":37,"line":112},[35,696,115],{"class":86},[35,698,118],{"class":82},[21,700,121],{"id":121},[123,702,703,709],{},[126,704,705],{},[129,706,134],{"href":707,"rel":708},"https:\u002F\u002Ffonts.nuxt.com",[133],[126,710,711],{},[129,712,140],{"href":713,"rel":714},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Ffonts",[133],[142,716,144],{},{"title":30,"searchDepth":90,"depth":90,"links":718},[719,720,721],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Fonts",[724,727,730,733,735,738,741,744,746,748],{"id":38,"username":725,"contributions":726},"user42306",56,{"id":90,"username":728,"contributions":729},"user71199",33,{"id":112,"username":731,"contributions":732},"user16707",22,{"id":162,"username":734,"contributions":176},"user13463",{"id":166,"username":736,"contributions":737},"user63863",80,{"id":170,"username":739,"contributions":740},"user72286",35,{"id":174,"username":742,"contributions":743},"user84726",48,{"id":178,"username":745,"contributions":187},"user22103",{"id":181,"username":747,"contributions":164},"user45708",{"id":185,"username":749,"contributions":475},"user14848",[751],{"name":196,"github":197,"bluesky":198},{},"fonts","\u002Fplugins\u002Ffonts","nuxt\u002Ffonts",{"title":629,"description":637},{"downloads":758,"stars":759,"watchers":760,"forks":761,"defaultBranch":210},701472,23636,1481,2636,"plugins\u002Ffonts","T0fSWfcZn4S2Byr1npK0ulV8J1a2e4adeTZfj-sX5fc",{"id":765,"title":766,"_id":7,"_partial":8,"_path":7,"body":767,"categories":7,"category":150,"contributors":858,"description":774,"extension":188,"github":844,"icon":189,"learn_more":7,"maintainers":885,"meta":890,"name":891,"navigation":201,"npm":766,"path":892,"repo":893,"seo":894,"sponsor":8,"stats":895,"stem":900,"type":212,"website":844,"__hash__":901},"plugins\u002Fplugins\u002Fhints.md","@nuxt\u002Fhints",{"type":10,"value":768,"toc":853},[769,772,775,777,791,793,797,836,838,851],[13,770,766],{"id":771},"nuxthints",[17,773,774],{},"Nuxt 插件，显示应用程序各方面的提示，如性能、安全等！",[21,776,23],{"id":23},[25,778,780],{"className":27,"code":779,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Fhints\n",[32,781,782],{"__ignoreMap":30},[35,783,784,786,788],{"class":37,"line":38},[35,785,42],{"class":41},[35,787,46],{"class":45},[35,789,790],{"class":45}," @nuxt\u002Fhints\n",[21,792,52],{"id":52},[17,794,55,795,59],{},[32,796,58],{},[25,798,800],{"className":62,"code":799,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fhints']\n})\n",[32,801,802,814,830],{"__ignoreMap":30},[35,803,804,806,808,810,812],{"class":37,"line":38},[35,805,72],{"class":71},[35,807,75],{"class":71},[35,809,79],{"class":78},[35,811,83],{"class":82},[35,813,87],{"class":86},[35,815,816,818,820,822,824,826,828],{"class":37,"line":90},[35,817,94],{"class":93},[35,819,59],{"class":86},[35,821,99],{"class":82},[35,823,102],{"class":86},[35,825,766],{"class":45},[35,827,102],{"class":86},[35,829,109],{"class":82},[35,831,832,834],{"class":37,"line":112},[35,833,115],{"class":86},[35,835,118],{"class":82},[21,837,121],{"id":121},[123,839,840,846],{},[126,841,842],{},[129,843,134],{"href":844,"rel":845},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fhints",[133],[126,847,848],{},[129,849,140],{"href":844,"rel":850},[133],[142,852,144],{},{"title":30,"searchDepth":90,"depth":90,"links":854},[855,856,857],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},[859,862,865,867,869,871,874,877,879,882],{"id":38,"username":860,"contributions":861},"user6533",91,{"id":90,"username":863,"contributions":864},"user71544",18,{"id":112,"username":866,"contributions":337},"user91675",{"id":162,"username":868,"contributions":166},"user25368",{"id":166,"username":870,"contributions":187},"user16215",{"id":170,"username":872,"contributions":873},"user81050",38,{"id":174,"username":875,"contributions":876},"user19700",44,{"id":178,"username":878,"contributions":321},"user41134",{"id":181,"username":880,"contributions":881},"user20762",19,{"id":185,"username":883,"contributions":884},"user339",42,[886],{"name":887,"github":888,"bluesky":889},"Julien Huang","huang-julien","julienhuang-dev.bsky.social",{},"hints","\u002Fplugins\u002Fhints","nuxt\u002Fhints",{"title":766,"description":774},{"downloads":896,"stars":897,"watchers":898,"forks":899,"defaultBranch":210},2213397,14758,1404,545,"plugins\u002Fhints","M4nkyrPTPXtaPD1YbnzIHqsvw9KU-5hHKG6Hp--8MMc",{"id":903,"title":904,"_id":7,"_partial":8,"_path":7,"body":905,"categories":7,"category":996,"contributors":997,"description":912,"extension":188,"github":982,"icon":189,"learn_more":7,"maintainers":1026,"meta":1029,"name":1030,"navigation":201,"npm":904,"path":1031,"repo":1032,"seo":1033,"sponsor":8,"stats":1034,"stem":1039,"type":212,"website":982,"__hash__":1040},"plugins\u002Fplugins\u002Ficon.md","@nuxt\u002Ficon",{"type":10,"value":906,"toc":991},[907,910,913,915,929,931,935,974,976,989],[13,908,904],{"id":909},"nuxticon",[17,911,912],{},"Nuxt 的图标插件，包含来自 Iconify 的 200,000+ 个即用图标。",[21,914,23],{"id":23},[25,916,918],{"className":27,"code":917,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Ficon\n",[32,919,920],{"__ignoreMap":30},[35,921,922,924,926],{"class":37,"line":38},[35,923,42],{"class":41},[35,925,46],{"class":45},[35,927,928],{"class":45}," @nuxt\u002Ficon\n",[21,930,52],{"id":52},[17,932,55,933,59],{},[32,934,58],{},[25,936,938],{"className":62,"code":937,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Ficon']\n})\n",[32,939,940,952,968],{"__ignoreMap":30},[35,941,942,944,946,948,950],{"class":37,"line":38},[35,943,72],{"class":71},[35,945,75],{"class":71},[35,947,79],{"class":78},[35,949,83],{"class":82},[35,951,87],{"class":86},[35,953,954,956,958,960,962,964,966],{"class":37,"line":90},[35,955,94],{"class":93},[35,957,59],{"class":86},[35,959,99],{"class":82},[35,961,102],{"class":86},[35,963,904],{"class":45},[35,965,102],{"class":86},[35,967,109],{"class":82},[35,969,970,972],{"class":37,"line":112},[35,971,115],{"class":86},[35,973,118],{"class":82},[21,975,121],{"id":121},[123,977,978,984],{},[126,979,980],{},[129,981,134],{"href":982,"rel":983},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Ficon",[133],[126,985,986],{},[129,987,140],{"href":982,"rel":988},[133],[142,990,144],{},{"title":30,"searchDepth":90,"depth":90,"links":992},[993,994,995],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"UI",[998,1001,1004,1007,1010,1012,1015,1018,1020,1023],{"id":38,"username":999,"contributions":1000},"user37024",11,{"id":90,"username":1002,"contributions":1003},"user87306",70,{"id":112,"username":1005,"contributions":1006},"user73353",45,{"id":162,"username":1008,"contributions":1009},"user58644",20,{"id":166,"username":1011,"contributions":38},"user69260",{"id":170,"username":1013,"contributions":1014},"user30247",30,{"id":174,"username":1016,"contributions":1017},"user18477",41,{"id":178,"username":1019,"contributions":160},"user52769",{"id":181,"username":1021,"contributions":1022},"user43970",75,{"id":185,"username":1024,"contributions":1025},"user98140",12,[1027,1028],{"name":348,"github":349,"bluesky":350},{"name":489,"github":490,"bluesky":491},{},"icon","\u002Fplugins\u002Ficon","nuxt\u002Ficon",{"title":904,"description":912},{"downloads":1035,"stars":1036,"watchers":1037,"forks":1038,"defaultBranch":210},3202080,45665,4249,188,"plugins\u002Ficon","qOiuB-isRs131Q2t8HEr0bLG3_Lq-TrBdqcsYYbaouc",{"id":1042,"title":1043,"_id":7,"_partial":8,"_path":7,"body":1044,"categories":7,"category":1136,"contributors":7,"description":1051,"extension":188,"github":1127,"icon":189,"learn_more":7,"maintainers":7,"meta":1137,"name":1138,"navigation":201,"npm":1043,"path":1139,"repo":1140,"seo":1141,"sponsor":8,"stats":7,"stem":1142,"type":1143,"website":1121,"__hash__":1144},"plugins\u002Fplugins\u002Fimage.md","@nuxt\u002Fimage",{"type":10,"value":1045,"toc":1131},[1046,1049,1052,1054,1068,1070,1074,1113,1115,1129],[13,1047,1043],{"id":1048},"nuxtimage",[17,1050,1051],{},"添加图片，支持渐进式处理、懒加载、调整大小和提供商支持。",[21,1053,23],{"id":23},[25,1055,1057],{"className":27,"code":1056,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Fimage\n",[32,1058,1059],{"__ignoreMap":30},[35,1060,1061,1063,1065],{"class":37,"line":38},[35,1062,42],{"class":41},[35,1064,46],{"class":45},[35,1066,1067],{"class":45}," @nuxt\u002Fimage\n",[21,1069,52],{"id":52},[17,1071,55,1072,59],{},[32,1073,58],{},[25,1075,1077],{"className":62,"code":1076,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fimage']\n})\n",[32,1078,1079,1091,1107],{"__ignoreMap":30},[35,1080,1081,1083,1085,1087,1089],{"class":37,"line":38},[35,1082,72],{"class":71},[35,1084,75],{"class":71},[35,1086,79],{"class":78},[35,1088,83],{"class":82},[35,1090,87],{"class":86},[35,1092,1093,1095,1097,1099,1101,1103,1105],{"class":37,"line":90},[35,1094,94],{"class":93},[35,1096,59],{"class":86},[35,1098,99],{"class":82},[35,1100,102],{"class":86},[35,1102,1043],{"class":45},[35,1104,102],{"class":86},[35,1106,109],{"class":82},[35,1108,1109,1111],{"class":37,"line":112},[35,1110,115],{"class":86},[35,1112,118],{"class":82},[21,1114,121],{"id":121},[123,1116,1117,1123],{},[126,1118,1119],{},[129,1120,134],{"href":1121,"rel":1122},"https:\u002F\u002Fimage.nuxt.com",[133],[126,1124,1125],{},[129,1126,140],{"href":1127,"rel":1128},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fimage",[133],[142,1130,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1132},[1133,1134,1135],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Images",{},"image","\u002Fplugins\u002Fimage","nuxt\u002Fimage",{"title":1043,"description":1051},"plugins\u002Fimage","[object Object]","CXK46BX2BS38OrXRmxzhBG5zRJ5aqUOc_MQQMO_IddQ",{"id":1146,"title":1147,"_id":7,"_partial":8,"_path":7,"body":1148,"categories":7,"category":1245,"contributors":1246,"description":1154,"extension":188,"github":1230,"icon":1267,"learn_more":1236,"maintainers":1268,"meta":1272,"name":1147,"navigation":201,"npm":1147,"path":1273,"repo":1274,"seo":1275,"sponsor":8,"stats":1276,"stem":1281,"type":1282,"website":1224,"__hash__":1283},"plugins\u002Fplugins\u002Fnuxt-auth-sanctum.md","nuxt-auth-sanctum",{"type":10,"value":1149,"toc":1240},[1150,1152,1155,1157,1171,1173,1177,1216,1218,1238],[13,1151,1147],{"id":1147},[17,1153,1154],{},"Laravel Sanctum 身份验证的 Nuxt 插件",[21,1156,23],{"id":23},[25,1158,1160],{"className":27,"code":1159,"language":29,"meta":30,"style":30},"npm install nuxt-auth-sanctum\n",[32,1161,1162],{"__ignoreMap":30},[35,1163,1164,1166,1168],{"class":37,"line":38},[35,1165,42],{"class":41},[35,1167,46],{"class":45},[35,1169,1170],{"class":45}," nuxt-auth-sanctum\n",[21,1172,52],{"id":52},[17,1174,55,1175,59],{},[32,1176,58],{},[25,1178,1180],{"className":62,"code":1179,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['nuxt-auth-sanctum']\n})\n",[32,1181,1182,1194,1210],{"__ignoreMap":30},[35,1183,1184,1186,1188,1190,1192],{"class":37,"line":38},[35,1185,72],{"class":71},[35,1187,75],{"class":71},[35,1189,79],{"class":78},[35,1191,83],{"class":82},[35,1193,87],{"class":86},[35,1195,1196,1198,1200,1202,1204,1206,1208],{"class":37,"line":90},[35,1197,94],{"class":93},[35,1199,59],{"class":86},[35,1201,99],{"class":82},[35,1203,102],{"class":86},[35,1205,1147],{"class":45},[35,1207,102],{"class":86},[35,1209,109],{"class":82},[35,1211,1212,1214],{"class":37,"line":112},[35,1213,115],{"class":86},[35,1215,118],{"class":82},[21,1217,121],{"id":121},[123,1219,1220,1226,1232],{},[126,1221,1222],{},[129,1223,134],{"href":1224,"rel":1225},"https:\u002F\u002Fsanctum.manchenkoff.me",[133],[126,1227,1228],{},[129,1229,140],{"href":1230,"rel":1231},"https:\u002F\u002Fgithub.com\u002Fmanchenkoff\u002Fnuxt-auth-sanctum",[133],[126,1233,1234],{},[129,1235,598],{"href":1236,"rel":1237},"https:\u002F\u002Flaravel.com\u002Fdocs\u002F12.x\u002Fsanctum",[133],[142,1239,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1241},[1242,1243,1244],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Security",[1247,1249,1251,1254,1257,1259,1262,1264],{"id":38,"username":1248,"contributions":337},"user3491",{"id":90,"username":1250,"contributions":478},"user52329",{"id":112,"username":1252,"contributions":1253},"user34359",81,{"id":162,"username":1255,"contributions":1256},"user86267",13,{"id":166,"username":1258,"contributions":166},"user71011",{"id":170,"username":1260,"contributions":1261},"user87107",86,{"id":174,"username":1263,"contributions":475},"user69652",{"id":178,"username":1265,"contributions":1266},"user80629",72,"laravel.svg",[1269],{"name":1270,"github":1271},"Artem Manchenkov","manchenkoff",{},"\u002Fplugins\u002Fnuxt-auth-sanctum","manchenkoff\u002Fnuxt-auth-sanctum",{"title":1147,"description":1154},{"downloads":1277,"stars":1278,"watchers":1279,"forks":1280,"defaultBranch":210},170439,571,491,288,"plugins\u002Fnuxt-auth-sanctum","3rd-party","a8McvtgCknAVn7piEt5AFjXKvoeG52aRnk-CAc_OdQo",{"id":1285,"title":1286,"_id":7,"_partial":8,"_path":7,"body":1287,"categories":7,"category":1378,"contributors":1379,"description":1404,"extension":188,"github":1369,"icon":1405,"learn_more":7,"maintainers":1406,"meta":1411,"name":1286,"navigation":201,"npm":1286,"path":1412,"repo":1413,"seo":1414,"sponsor":8,"stats":1415,"stem":1420,"type":1282,"website":1363,"__hash__":1421},"plugins\u002Fplugins\u002Fnuxt-mongoose.md","nuxt-mongoose",{"type":10,"value":1288,"toc":1373},[1289,1291,1294,1296,1310,1312,1316,1355,1357,1371],[13,1290,1286],{"id":1286},[17,1292,1293],{},"简化在项目中使用 Mongoose 的 Nuxt 插件。",[21,1295,23],{"id":23},[25,1297,1299],{"className":27,"code":1298,"language":29,"meta":30,"style":30},"npm install nuxt-mongoose\n",[32,1300,1301],{"__ignoreMap":30},[35,1302,1303,1305,1307],{"class":37,"line":38},[35,1304,42],{"class":41},[35,1306,46],{"class":45},[35,1308,1309],{"class":45}," nuxt-mongoose\n",[21,1311,52],{"id":52},[17,1313,55,1314,59],{},[32,1315,58],{},[25,1317,1319],{"className":62,"code":1318,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['nuxt-mongoose']\n})\n",[32,1320,1321,1333,1349],{"__ignoreMap":30},[35,1322,1323,1325,1327,1329,1331],{"class":37,"line":38},[35,1324,72],{"class":71},[35,1326,75],{"class":71},[35,1328,79],{"class":78},[35,1330,83],{"class":82},[35,1332,87],{"class":86},[35,1334,1335,1337,1339,1341,1343,1345,1347],{"class":37,"line":90},[35,1336,94],{"class":93},[35,1338,59],{"class":86},[35,1340,99],{"class":82},[35,1342,102],{"class":86},[35,1344,1286],{"class":45},[35,1346,102],{"class":86},[35,1348,109],{"class":82},[35,1350,1351,1353],{"class":37,"line":112},[35,1352,115],{"class":86},[35,1354,118],{"class":82},[21,1356,121],{"id":121},[123,1358,1359,1365],{},[126,1360,1361],{},[129,1362,134],{"href":1363,"rel":1364},"https:\u002F\u002Fnuxt-mongoose.nuxt.space",[133],[126,1366,1367],{},[129,1368,140],{"href":1369,"rel":1370},"https:\u002F\u002Fgithub.com\u002Farashsheyda\u002Fnuxt-mongoose",[133],[142,1372,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1374},[1375,1376,1377],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Database",[1380,1383,1385,1387,1389,1392,1394,1397,1400,1402],{"id":38,"username":1381,"contributions":1382},"user44120",87,{"id":90,"username":1384,"contributions":881},"user69808",{"id":112,"username":1386,"contributions":160},"user43499",{"id":162,"username":1388,"contributions":1009},"user57745",{"id":166,"username":1390,"contributions":1391},"user19045",71,{"id":170,"username":1393,"contributions":1261},"user92868",{"id":174,"username":1395,"contributions":1396},"user76193",26,{"id":178,"username":1398,"contributions":1399},"user83794",94,{"id":181,"username":1401,"contributions":1399},"user91572",{"id":185,"username":1403,"contributions":1261},"user66728","简化在项目中使用 Mongoose 的 Nuxt 插件","nuxt-mongoose.svg",[1407],{"name":1408,"github":1409,"bluesky":1410},"Arash Ari Sheyda","arashsheyda","arashsheyda.me",{},"\u002Fplugins\u002Fnuxt-mongoose","arashsheyda\u002Fnuxt-mongoose",{"title":1286,"description":1404},{"downloads":1416,"stars":1417,"watchers":1418,"forks":1419,"defaultBranch":210},313268,1561,463,234,"plugins\u002Fnuxt-mongoose","rVDGisvuxFx5xMNmMn_AP8A-8i-bNJ-G_buXYZVbU5U",{"id":1423,"title":1424,"_id":7,"_partial":8,"_path":7,"body":1425,"categories":7,"category":1522,"contributors":1523,"description":1547,"extension":188,"github":1507,"icon":1548,"learn_more":1513,"maintainers":1549,"meta":1553,"name":1424,"navigation":201,"npm":1424,"path":1554,"repo":1555,"seo":1556,"sponsor":8,"stats":1557,"stem":1562,"type":1282,"website":1501,"__hash__":1563},"plugins\u002Fplugins\u002Fnuxt-posthog.md","nuxt-posthog",{"type":10,"value":1426,"toc":1517},[1427,1429,1432,1434,1448,1450,1454,1493,1495,1515],[13,1428,1424],{"id":1424},[17,1430,1431],{},"以最少的配置将 PostHog 集成到您的应用程序中。",[21,1433,23],{"id":23},[25,1435,1437],{"className":27,"code":1436,"language":29,"meta":30,"style":30},"npm install nuxt-posthog\n",[32,1438,1439],{"__ignoreMap":30},[35,1440,1441,1443,1445],{"class":37,"line":38},[35,1442,42],{"class":41},[35,1444,46],{"class":45},[35,1446,1447],{"class":45}," nuxt-posthog\n",[21,1449,52],{"id":52},[17,1451,55,1452,59],{},[32,1453,58],{},[25,1455,1457],{"className":62,"code":1456,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['nuxt-posthog']\n})\n",[32,1458,1459,1471,1487],{"__ignoreMap":30},[35,1460,1461,1463,1465,1467,1469],{"class":37,"line":38},[35,1462,72],{"class":71},[35,1464,75],{"class":71},[35,1466,79],{"class":78},[35,1468,83],{"class":82},[35,1470,87],{"class":86},[35,1472,1473,1475,1477,1479,1481,1483,1485],{"class":37,"line":90},[35,1474,94],{"class":93},[35,1476,59],{"class":86},[35,1478,99],{"class":82},[35,1480,102],{"class":86},[35,1482,1424],{"class":45},[35,1484,102],{"class":86},[35,1486,109],{"class":82},[35,1488,1489,1491],{"class":37,"line":112},[35,1490,115],{"class":86},[35,1492,118],{"class":82},[21,1494,121],{"id":121},[123,1496,1497,1503,1509],{},[126,1498,1499],{},[129,1500,134],{"href":1501,"rel":1502},"https:\u002F\u002Fnuxt-posthog.cmitjans.dev",[133],[126,1504,1505],{},[129,1506,140],{"href":1507,"rel":1508},"https:\u002F\u002Fgithub.com\u002Fmitjans\u002Fnuxt-posthog",[133],[126,1510,1511],{},[129,1512,598],{"href":1513,"rel":1514},"https:\u002F\u002Fposthog.com",[133],[142,1516,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1518},[1519,1520,1521],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Analytics",[1524,1526,1529,1531,1534,1536,1538,1541,1543,1545],{"id":38,"username":1525,"contributions":1261},"user99328",{"id":90,"username":1527,"contributions":1528},"user36640",27,{"id":112,"username":1530,"contributions":743},"user8127",{"id":162,"username":1532,"contributions":1533},"user15154",63,{"id":166,"username":1535,"contributions":166},"user34098",{"id":170,"username":1537,"contributions":160},"user56129",{"id":174,"username":1539,"contributions":1540},"user16681",69,{"id":178,"username":1542,"contributions":183},"user23250",{"id":181,"username":1544,"contributions":469},"user69685",{"id":185,"username":1546,"contributions":164},"user26894","以最少的配置将 PostHog 集成到您的应用程序中","posthog.svg",[1550],{"name":1551,"github":1552},"Carles Mitjans","mitjans",{},"\u002Fplugins\u002Fnuxt-posthog","mitjans\u002Fnuxt-posthog",{"title":1424,"description":1547},{"downloads":1558,"stars":1559,"watchers":1560,"forks":1561,"defaultBranch":210},372773,749,249,248,"plugins\u002Fnuxt-posthog","2n73yQ9EGdeStmU9-KnMhhd-BroMNfiF29MCtTXzhg4",{"id":1565,"title":1566,"_id":7,"_partial":8,"_path":7,"body":1567,"categories":7,"category":1659,"contributors":1660,"description":1574,"extension":188,"github":1650,"icon":189,"learn_more":7,"maintainers":1684,"meta":1688,"name":1689,"navigation":201,"npm":1566,"path":1690,"repo":1691,"seo":1692,"sponsor":8,"stats":1693,"stem":1698,"type":212,"website":1644,"__hash__":1699},"plugins\u002Fplugins\u002Fscripts.md","@nuxt\u002Fscripts",{"type":10,"value":1568,"toc":1654},[1569,1572,1575,1577,1591,1593,1597,1636,1638,1652],[13,1570,1566],{"id":1571},"nuxtscripts",[17,1573,1574],{},"在不牺牲性能的情况下添加第三方脚本",[21,1576,23],{"id":23},[25,1578,1580],{"className":27,"code":1579,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Fscripts\n",[32,1581,1582],{"__ignoreMap":30},[35,1583,1584,1586,1588],{"class":37,"line":38},[35,1585,42],{"class":41},[35,1587,46],{"class":45},[35,1589,1590],{"class":45}," @nuxt\u002Fscripts\n",[21,1592,52],{"id":52},[17,1594,55,1595,59],{},[32,1596,58],{},[25,1598,1600],{"className":62,"code":1599,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fscripts']\n})\n",[32,1601,1602,1614,1630],{"__ignoreMap":30},[35,1603,1604,1606,1608,1610,1612],{"class":37,"line":38},[35,1605,72],{"class":71},[35,1607,75],{"class":71},[35,1609,79],{"class":78},[35,1611,83],{"class":82},[35,1613,87],{"class":86},[35,1615,1616,1618,1620,1622,1624,1626,1628],{"class":37,"line":90},[35,1617,94],{"class":93},[35,1619,59],{"class":86},[35,1621,99],{"class":82},[35,1623,102],{"class":86},[35,1625,1566],{"class":45},[35,1627,102],{"class":86},[35,1629,109],{"class":82},[35,1631,1632,1634],{"class":37,"line":112},[35,1633,115],{"class":86},[35,1635,118],{"class":82},[21,1637,121],{"id":121},[123,1639,1640,1646],{},[126,1641,1642],{},[129,1643,134],{"href":1644,"rel":1645},"https:\u002F\u002Fscripts.nuxt.com",[133],[126,1647,1648],{},[129,1649,140],{"href":1650,"rel":1651},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fscripts",[133],[142,1653,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1655},[1656,1657,1658],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},"Performance",[1661,1663,1665,1668,1670,1672,1675,1677,1680,1682],{"id":38,"username":1662,"contributions":185},"user50497",{"id":90,"username":1664,"contributions":170},"user7468",{"id":112,"username":1666,"contributions":1667},"user4831",85,{"id":162,"username":1669,"contributions":861},"user75013",{"id":166,"username":1671,"contributions":743},"user98072",{"id":170,"username":1673,"contributions":1674},"user11559",28,{"id":174,"username":1676,"contributions":1006},"user13714",{"id":178,"username":1678,"contributions":1679},"user94609",51,{"id":181,"username":1681,"contributions":154},"user41644",{"id":185,"username":1683,"contributions":732},"user76238",[1685],{"name":1686,"github":1687},"Harlan Wilton","harlan-zw",{},"scripts","\u002Fplugins\u002Fscripts","nuxt\u002Fscripts",{"title":1566,"description":1574},{"downloads":1694,"stars":1695,"watchers":1696,"forks":1697,"defaultBranch":210},654472,110,4891,718,"plugins\u002Fscripts","snquBudp2I-f1Ubv48w-17ZeDz9inLAAt_tSOMR4LCo",{"id":1701,"title":1702,"_id":7,"_partial":8,"_path":7,"body":1703,"categories":7,"category":150,"contributors":1795,"description":1710,"extension":188,"github":1786,"icon":189,"learn_more":7,"maintainers":1820,"meta":1823,"name":1824,"navigation":201,"npm":1702,"path":1825,"repo":1826,"seo":1827,"sponsor":8,"stats":1828,"stem":1833,"type":212,"website":1780,"__hash__":1834},"plugins\u002Fplugins\u002Ftest-utils.md","@nuxt\u002Ftest-utils",{"type":10,"value":1704,"toc":1790},[1705,1708,1711,1713,1727,1729,1733,1772,1774,1788],[13,1706,1702],{"id":1707},"nuxttest-utils",[17,1709,1710],{},"Nuxt 的测试工具",[21,1712,23],{"id":23},[25,1714,1716],{"className":27,"code":1715,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Ftest-utils\n",[32,1717,1718],{"__ignoreMap":30},[35,1719,1720,1722,1724],{"class":37,"line":38},[35,1721,42],{"class":41},[35,1723,46],{"class":45},[35,1725,1726],{"class":45}," @nuxt\u002Ftest-utils\n",[21,1728,52],{"id":52},[17,1730,55,1731,59],{},[32,1732,58],{},[25,1734,1736],{"className":62,"code":1735,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Ftest-utils']\n})\n",[32,1737,1738,1750,1766],{"__ignoreMap":30},[35,1739,1740,1742,1744,1746,1748],{"class":37,"line":38},[35,1741,72],{"class":71},[35,1743,75],{"class":71},[35,1745,79],{"class":78},[35,1747,83],{"class":82},[35,1749,87],{"class":86},[35,1751,1752,1754,1756,1758,1760,1762,1764],{"class":37,"line":90},[35,1753,94],{"class":93},[35,1755,59],{"class":86},[35,1757,99],{"class":82},[35,1759,102],{"class":86},[35,1761,1702],{"class":45},[35,1763,102],{"class":86},[35,1765,109],{"class":82},[35,1767,1768,1770],{"class":37,"line":112},[35,1769,115],{"class":86},[35,1771,118],{"class":82},[21,1773,121],{"id":121},[123,1775,1776,1782],{},[126,1777,1778],{},[129,1779,134],{"href":1780,"rel":1781},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fgetting-started\u002Ftesting",[133],[126,1783,1784],{},[129,1785,140],{"href":1786,"rel":1787},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Ftest-utils",[133],[142,1789,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1791},[1792,1793,1794],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},[1796,1799,1801,1804,1806,1808,1810,1812,1815,1818],{"id":38,"username":1797,"contributions":1798},"user42799",61,{"id":90,"username":1800,"contributions":1006},"user77607",{"id":112,"username":1802,"contributions":1803},"user70090",47,{"id":162,"username":1805,"contributions":181},"user95279",{"id":166,"username":1807,"contributions":1256},"user89952",{"id":170,"username":1809,"contributions":172},"user41689",{"id":174,"username":1811,"contributions":316},"user2190",{"id":178,"username":1813,"contributions":1814},"user4111",39,{"id":181,"username":1816,"contributions":1817},"user93327",46,{"id":185,"username":1819,"contributions":181},"user52428",[1821,1822],{"name":196,"github":197,"bluesky":198},{"name":489,"github":490,"bluesky":491},{},"test-utils","\u002Fplugins\u002Ftest-utils","nuxt\u002Ftest-utils#main",{"title":1702,"description":1710},{"downloads":1829,"stars":1830,"watchers":1831,"forks":1832,"defaultBranch":210},509128,9236,3824,2540,"plugins\u002Ftest-utils","uXkQHRcL1KX0bO4rKHC8DNyQVRtjTqdsoU3mNZK2YD4",{"id":1836,"title":1837,"_id":7,"_partial":8,"_path":7,"body":1838,"categories":7,"category":996,"contributors":1930,"description":1845,"extension":188,"github":1921,"icon":189,"learn_more":7,"maintainers":1950,"meta":1956,"name":1957,"navigation":201,"npm":1837,"path":1958,"repo":1959,"seo":1960,"sponsor":8,"stats":1961,"stem":1966,"type":212,"website":1915,"__hash__":1967},"plugins\u002Fplugins\u002Fui.md","@nuxt\u002Fui",{"type":10,"value":1839,"toc":1925},[1840,1843,1846,1848,1862,1864,1868,1907,1909,1923],[13,1841,1837],{"id":1842},"nuxtui",[17,1844,1845],{},"基于 Reka UI 和 Tailwind CSS 的直观 UI 库",[21,1847,23],{"id":23},[25,1849,1851],{"className":27,"code":1850,"language":29,"meta":30,"style":30},"npm install @nuxt\u002Fui\n",[32,1852,1853],{"__ignoreMap":30},[35,1854,1855,1857,1859],{"class":37,"line":38},[35,1856,42],{"class":41},[35,1858,46],{"class":45},[35,1860,1861],{"class":45}," @nuxt\u002Fui\n",[21,1863,52],{"id":52},[17,1865,55,1866,59],{},[32,1867,58],{},[25,1869,1871],{"className":62,"code":1870,"language":64,"meta":30,"style":30},"export default defineNuxtConfig({\n  modules: ['@nuxt\u002Fui']\n})\n",[32,1872,1873,1885,1901],{"__ignoreMap":30},[35,1874,1875,1877,1879,1881,1883],{"class":37,"line":38},[35,1876,72],{"class":71},[35,1878,75],{"class":71},[35,1880,79],{"class":78},[35,1882,83],{"class":82},[35,1884,87],{"class":86},[35,1886,1887,1889,1891,1893,1895,1897,1899],{"class":37,"line":90},[35,1888,94],{"class":93},[35,1890,59],{"class":86},[35,1892,99],{"class":82},[35,1894,102],{"class":86},[35,1896,1837],{"class":45},[35,1898,102],{"class":86},[35,1900,109],{"class":82},[35,1902,1903,1905],{"class":37,"line":112},[35,1904,115],{"class":86},[35,1906,118],{"class":82},[21,1908,121],{"id":121},[123,1910,1911,1917],{},[126,1912,1913],{},[129,1914,134],{"href":1915,"rel":1916},"https:\u002F\u002Fui.nuxt.com\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fnuxt",[133],[126,1918,1919],{},[129,1920,140],{"href":1921,"rel":1922},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui",[133],[142,1924,144],{},{"title":30,"searchDepth":90,"depth":90,"links":1926},[1927,1928,1929],{"id":23,"depth":90,"text":23},{"id":52,"depth":90,"text":52},{"id":121,"depth":90,"text":121},[1931,1933,1935,1938,1941,1943,1945,1948],{"id":38,"username":1932,"contributions":1017},"user99346",{"id":90,"username":1934,"contributions":316},"user54967",{"id":112,"username":1936,"contributions":1937},"user11433",31,{"id":162,"username":1939,"contributions":1940},"user9986",100,{"id":166,"username":1942,"contributions":1937},"user89841",{"id":170,"username":1944,"contributions":1022},"user3725",{"id":174,"username":1946,"contributions":1947},"user89501",68,{"id":178,"username":1949,"contributions":609},"user88437",[1951,1955],{"name":1952,"github":1953,"bluesky":1954},"Benjamin Canac","benjamincanac","benjamincanac.dev",{"name":348,"github":349,"bluesky":350},{},"ui","\u002Fplugins\u002Fui","nuxt\u002Fui#dev",{"title":1837,"description":1845},{"downloads":1962,"stars":1963,"watchers":1964,"forks":1965,"defaultBranch":210},4898787,4588,1125,2648,"plugins\u002Fui","-l-I_UU8K6HTEy7-xTpyP_Mc1SGIH0ELsk7kc8GHh28",[1969,2025,2159,2233,2273,2287,2325,2422,2542,2556,2583],{"title":1970,"path":1971,"stem":1972,"children":1973,"titleTemplate":7,"icon":2024},"入门指南","\u002Fdocs\u002Fguide","docs\u002F01.guide\u002F01.index",[1974,1976,1980,2008,2012,2016],{"title":1975,"path":1971,"stem":1972,"titleTemplate":7},"创建你的第一个仓库",{"title":1977,"path":1978,"stem":1979,"titleTemplate":7},"迁移工具","\u002Fdocs\u002Fguide\u002Fmigration-tools","docs\u002F01.guide\u002F02.migration-tools",{"title":1981,"path":1982,"stem":1983,"children":1984,"titleTemplate":7,"icon":2007},"仓库","\u002Fdocs\u002Fguide\u002Frepo","docs\u002F01.guide\u002F02.repo\u002F01.index",[1985,1987,1991,1995,1999,2003],{"title":1986,"path":1982,"stem":1983,"titleTemplate":7},"产品介绍",{"title":1988,"path":1989,"stem":1990,"titleTemplate":7},"密钥仓库","\u002Fdocs\u002Fguide\u002Frepo\u002Fsecret","docs\u002F01.guide\u002F02.repo\u002F02.secret",{"title":1992,"path":1993,"stem":1994,"titleTemplate":7},"元数据","\u002Fdocs\u002Fguide\u002Frepo\u002Fannotations","docs\u002F01.guide\u002F02.repo\u002F03.annotations",{"title":1996,"path":1997,"stem":1998,"titleTemplate":7},"ISSUE 模板","\u002Fdocs\u002Fguide\u002Frepo\u002Fissue-template","docs\u002F01.guide\u002F02.repo\u002F04.issue-template",{"title":2000,"path":2001,"stem":2002,"titleTemplate":7},"分类标签","\u002Fdocs\u002Fguide\u002Frepo\u002Flabel","docs\u002F01.guide\u002F02.repo\u002F05.label",{"title":2004,"path":2005,"stem":2006,"titleTemplate":7},"UI 定制","\u002Fdocs\u002Fguide\u002Frepo\u002Fsettings","docs\u002F01.guide\u002F02.repo\u002F06.settings","lucide:folder",{"title":2009,"path":2010,"stem":2011,"titleTemplate":7},"角色权限","\u002Fdocs\u002Fguide\u002Frole-permissions","docs\u002F01.guide\u002F03.role-permissions",{"title":2013,"path":2014,"stem":2015,"titleTemplate":7},"访问令牌","\u002Fdocs\u002Fguide\u002Faccess-token","docs\u002F01.guide\u002F04.access-token",{"title":2017,"path":2018,"stem":2019,"children":2020,"titleTemplate":7,"icon":2023},"任务集","\u002Fdocs\u002Fguide\u002Fmissions","docs\u002F01.guide\u002F07.missions\u002F01.index",[2021],{"title":2022,"path":2018,"stem":2019,"titleTemplate":7},"任务集介绍","lucide:target","lucide:book-open",{"title":2026,"titleTemplate":7,"icon":2027,"path":2028,"stem":2029,"children":2030,"page":8},"云原生构建","lucide:rocket","\u002Fdocs\u002Fbuild","docs\u002F03.build",[2031,2079,2099,2139],{"title":2032,"path":2033,"stem":2034,"children":2035,"titleTemplate":7,"icon":2078},"基础使用","\u002Fdocs\u002Fbuild\u002Fbasic-usage","docs\u002F03.build\u002F01.basic-usage\u002F01.index",[2036,2038,2042,2046,2050,2054,2058,2062,2066,2070,2074],{"title":2037,"path":2033,"stem":2034,"titleTemplate":7},"云原生构建介绍",{"title":2039,"path":2040,"stem":2041,"titleTemplate":7},"快速开始","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fquick-start","docs\u002F03.build\u002F01.basic-usage\u002F02.quick-start",{"title":2043,"path":2044,"stem":2045,"titleTemplate":7},"构建触发规则","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Ftrigger-rule","docs\u002F03.build\u002F01.basic-usage\u002F03.trigger-rule",{"title":2047,"path":2048,"stem":2049,"titleTemplate":7},"配置文件","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fconfiguration","docs\u002F03.build\u002F01.basic-usage\u002F04.configuration",{"title":2051,"path":2052,"stem":2053,"titleTemplate":7},"流水线语法","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fgrammar","docs\u002F03.build\u002F01.basic-usage\u002F05.grammar",{"title":2055,"path":2056,"stem":2057,"titleTemplate":7},"构建环境","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fbuild-env","docs\u002F03.build\u002F01.basic-usage\u002F06.build-env",{"title":2059,"path":2060,"stem":2061,"titleTemplate":7},"构建集群","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fbuild-node","docs\u002F03.build\u002F01.basic-usage\u002F07.build-node",{"title":2063,"path":2064,"stem":2065,"titleTemplate":7},"环境变量","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fenv","docs\u002F03.build\u002F01.basic-usage\u002F08.env",{"title":2067,"path":2068,"stem":2069,"titleTemplate":7},"默认环境变量","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fbuild-in-env","docs\u002F03.build\u002F01.basic-usage\u002F09.build-in-env",{"title":2071,"path":2072,"stem":2073,"titleTemplate":7},"超时策略","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Ftimeout","docs\u002F03.build\u002F01.basic-usage\u002F10.timeout",{"title":2075,"path":2076,"stem":2077,"titleTemplate":7},"权限说明","\u002Fdocs\u002Fbuild\u002Fbasic-usage\u002Fpermission","docs\u002F03.build\u002F01.basic-usage\u002F11.permission","lucide:book",{"title":2080,"path":2081,"stem":2082,"children":2083,"titleTemplate":7,"icon":2098},"插件","\u002Fdocs\u002Fbuild\u002Fplugins","docs\u002F03.build\u002F02.plugins\u002F01.index",[2084,2086,2090,2094],{"title":2085,"path":2081,"stem":2082,"titleTemplate":7},"内置任务",{"title":2087,"path":2088,"stem":2089,"titleTemplate":7},"插件市场","\u002Fdocs\u002Fbuild\u002Fplugins\u002Fplugins","docs\u002F03.build\u002F02.plugins\u002F02.plugins",{"title":2091,"path":2092,"stem":2093,"titleTemplate":7},"插件制作","\u002Fdocs\u002Fbuild\u002Fplugins\u002Fcreate-plugin","docs\u002F03.build\u002F02.plugins\u002F03.create-plugin",{"title":2095,"path":2096,"stem":2097,"titleTemplate":7},"贡献插件","\u002Fdocs\u002Fbuild\u002Fplugins\u002Fcontribute-plugin","docs\u002F03.build\u002F02.plugins\u002F04.contribute-plugin","lucide:puzzle",{"title":2100,"path":2101,"stem":2102,"children":2103,"titleTemplate":7,"icon":2138},"进阶使用","\u002Fdocs\u002Fbuild\u002Fadvanced-usage","docs\u002F03.build\u002F03.advanced-usage\u002F01.index",[2104,2106,2110,2114,2118,2122,2126,2130,2134],{"title":2105,"path":2101,"stem":2102,"titleTemplate":7},"简化配置文件",{"title":2107,"path":2108,"stem":2109,"titleTemplate":7},"文件引用","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Ffile-reference","docs\u002F03.build\u002F03.advanced-usage\u002F02.file-reference",{"title":2111,"path":2112,"stem":2113,"titleTemplate":7},"流水线缓存","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Fpipeline-cache","docs\u002F03.build\u002F03.advanced-usage\u002F03.pipeline-cache",{"title":2115,"path":2116,"stem":2117,"titleTemplate":7},"定时任务","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Fcrontab","docs\u002F03.build\u002F03.advanced-usage\u002F04.crontab",{"title":2119,"path":2120,"stem":2121,"titleTemplate":7},"跳过流水线","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Fskip-pipeline","docs\u002F03.build\u002F03.advanced-usage\u002F05.skip-pipeline",{"title":2123,"path":2124,"stem":2125,"titleTemplate":7},"登录调试","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Flogin-debug","docs\u002F03.build\u002F03.advanced-usage\u002F06.login-debug",{"title":2127,"path":2128,"stem":2129,"titleTemplate":7},"手动触发流水线","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Fweb-trigger","docs\u002F03.build\u002F03.advanced-usage\u002F07.web-trigger",{"title":2131,"path":2132,"stem":2133,"titleTemplate":7},"自定义部署流程","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Fdeploy","docs\u002F03.build\u002F03.advanced-usage\u002F08.deploy",{"title":2135,"path":2136,"stem":2137,"titleTemplate":7},"常见问题","\u002Fdocs\u002Fbuild\u002Fadvanced-usage\u002Ffaq","docs\u002F03.build\u002F03.advanced-usage\u002F09.faq","lucide:zap",{"title":2140,"path":2141,"stem":2142,"children":2143,"titleTemplate":7,"icon":2158},"示例","\u002Fdocs\u002Fbuild\u002Fshowcase","docs\u002F03.build\u002F04.showcase\u002Findex",[2144,2146,2150,2154],{"title":2145,"path":2141,"stem":2142,"titleTemplate":7},"构建Docker镜像并上传",{"title":2147,"path":2148,"stem":2149,"titleTemplate":7},"ISSUE通知到企业微信群","\u002Fdocs\u002Fbuild\u002Fshowcase\u002Fissue-notice-group","docs\u002F03.build\u002F04.showcase\u002Fissue-notice-group",{"title":2151,"path":2152,"stem":2153,"titleTemplate":7},"Monorepo按需构建","\u002Fdocs\u002Fbuild\u002Fshowcase\u002Fmonorepo","docs\u002F03.build\u002F04.showcase\u002Fmonorepo",{"title":2155,"path":2156,"stem":2157,"titleTemplate":7},"PR通知到企业微信群","\u002Fdocs\u002Fbuild\u002Fshowcase\u002Fpr-notice-group","docs\u002F03.build\u002F04.showcase\u002Fpr-notice-group","lucide:app-window-mac",{"title":2160,"titleTemplate":7,"icon":2161,"path":2162,"stem":2163,"children":2164,"page":8},"云原生开发","lucide:laptop","\u002Fdocs\u002Fworkspaces","docs\u002F04.workspaces",[2165,2199,2217],{"title":2032,"path":2166,"stem":2167,"children":2168,"titleTemplate":7,"icon":2078},"\u002Fdocs\u002Fworkspaces\u002Fbasic-usage","docs\u002F04.workspaces\u002F01.basic-usage\u002F01.index",[2169,2171,2175,2179,2183,2187,2191,2195],{"title":2170,"path":2166,"stem":2167,"titleTemplate":7},"云原生开发介绍",{"title":2172,"path":2173,"stem":2174,"titleTemplate":7},"默认开发环境","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Fdefault-dev-env","docs\u002F04.workspaces\u002F01.basic-usage\u002F02.default-dev-env",{"title":2176,"path":2177,"stem":2178,"titleTemplate":7},"自定义开发环境","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Fcustom-dev-env","docs\u002F04.workspaces\u002F01.basic-usage\u002F03.custom-dev-env",{"title":2180,"path":2181,"stem":2182,"titleTemplate":7},"业务端口预览","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Fbusiness-preview","docs\u002F04.workspaces\u002F01.basic-usage\u002F04.business-preview",{"title":2184,"path":2185,"stem":2186,"titleTemplate":7},"远程开发工作区回收机制","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Fworkspace-recycling","docs\u002F04.workspaces\u002F01.basic-usage\u002F05.workspace-recycling",{"title":2188,"path":2189,"stem":2190,"titleTemplate":7},"代码备份和文件漫游","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Ffile-keeper","docs\u002F04.workspaces\u002F01.basic-usage\u002F06.file-keeper",{"title":2192,"path":2193,"stem":2194,"titleTemplate":7},"云原生开发推荐用法","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Frecommended-practice","docs\u002F04.workspaces\u002F01.basic-usage\u002F07.recommended-practice",{"title":2196,"path":2197,"stem":2198,"titleTemplate":7},"常见问题解答","\u002Fdocs\u002Fworkspaces\u002Fbasic-usage\u002Fquestion","docs\u002F04.workspaces\u002F01.basic-usage\u002F08.question",{"title":2100,"path":2200,"stem":2201,"children":2202,"titleTemplate":7,"icon":2138},"\u002Fdocs\u002Fworkspaces\u002Fadvanced-usage","docs\u002F04.workspaces\u002F02.advanced-usage\u002F01.index",[2203,2205,2209,2213],{"title":2204,"path":2200,"stem":2201,"titleTemplate":7},"自定义环境创建流程",{"title":2206,"path":2207,"stem":2208,"titleTemplate":7},"自定义云原生开发启动按钮","\u002Fdocs\u002Fworkspaces\u002Fadvanced-usage\u002Fcustom-dev-button","docs\u002F04.workspaces\u002F02.advanced-usage\u002F02.custom-dev-button",{"title":2210,"path":2211,"stem":2212,"titleTemplate":7},"单\u002F双容器模式","\u002Fdocs\u002Fworkspaces\u002Fadvanced-usage\u002Fdouble-container","docs\u002F04.workspaces\u002F02.advanced-usage\u002F03.double-container",{"title":2214,"path":2215,"stem":2216,"titleTemplate":7},"使用技巧","\u002Fdocs\u002Fworkspaces\u002Fadvanced-usage\u002Ftips","docs\u002F04.workspaces\u002F02.advanced-usage\u002F04.tips",{"title":2218,"path":2219,"stem":2220,"children":2221,"titleTemplate":7,"icon":2232},"本地IDE客户端","\u002Fdocs\u002Fworkspaces\u002Flocalide","docs\u002F04.workspaces\u002F03.localide\u002F01.index",[2222,2224,2228],{"title":2223,"path":2219,"stem":2220,"titleTemplate":7},"VSCode\u002FCursor 客户端",{"title":2225,"path":2226,"stem":2227,"titleTemplate":7},"Jetbrains 客户端","\u002Fdocs\u002Fworkspaces\u002Flocalide\u002Fjetbrains","docs\u002F04.workspaces\u002F03.localide\u002F02.jetbrains",{"title":2229,"path":2230,"stem":2231,"titleTemplate":7},"云原生开发 SSH 密钥指纹验证","\u002Fdocs\u002Fworkspaces\u002Flocalide\u002Ffingerprint","docs\u002F04.workspaces\u002F03.localide\u002F03.fingerprint","lucide:monitor",{"title":2234,"titleTemplate":7,"icon":2235,"path":2236,"stem":2237,"children":2238},"制品库","lucide:package","\u002Fdocs\u002Fartifact","docs\u002F05.artifact\u002Findex",[2239,2241,2245,2249,2253,2257,2261,2265,2269],{"title":2240,"path":2236,"stem":2237,"titleTemplate":7},"制品库介绍",{"title":2242,"path":2243,"stem":2244,"titleTemplate":7},"Composer 制品库","\u002Fdocs\u002Fartifact\u002Fcomposer","docs\u002F05.artifact\u002Fcomposer",{"title":2246,"path":2247,"stem":2248,"titleTemplate":7},"Docker 制品库","\u002Fdocs\u002Fartifact\u002Fdocker","docs\u002F05.artifact\u002Fdocker",{"title":2250,"path":2251,"stem":2252,"titleTemplate":7},"Helm 制品库","\u002Fdocs\u002Fartifact\u002Fhelm","docs\u002F05.artifact\u002Fhelm",{"title":2254,"path":2255,"stem":2256,"titleTemplate":7},"Maven 制品库","\u002Fdocs\u002Fartifact\u002Fmaven","docs\u002F05.artifact\u002Fmaven",{"title":2258,"path":2259,"stem":2260,"titleTemplate":7},"npm 制品库","\u002Fdocs\u002Fartifact\u002Fnpm","docs\u002F05.artifact\u002Fnpm",{"title":2262,"path":2263,"stem":2264,"titleTemplate":7},"Nuget 制品库","\u002Fdocs\u002Fartifact\u002Fnuget","docs\u002F05.artifact\u002Fnuget",{"title":2266,"path":2267,"stem":2268,"titleTemplate":7},"ohpm 制品库","\u002Fdocs\u002Fartifact\u002Fohpm","docs\u002F05.artifact\u002Fohpm",{"title":2270,"path":2271,"stem":2272,"titleTemplate":7},"PyPI 制品库","\u002Fdocs\u002Fartifact\u002Fpypi","docs\u002F05.artifact\u002Fpypi",{"title":2274,"path":2275,"stem":2276,"children":2277,"titleTemplate":7,"icon":2286},"AI助手","\u002Fdocs\u002Fai","docs\u002F06.ai\u002F01.index",[2278,2281],{"title":2279,"path":2275,"stem":2276,"titleTemplate":7,"icon":2280},"AI助手简介","lucide:bot",{"title":2282,"path":2283,"stem":2284,"titleTemplate":7,"icon":2285},"知识库","\u002Fdocs\u002Fai\u002Fknowledge-base","docs\u002F06.ai\u002F02.knowledge-base","lucide:knowledge","lucide:npc",{"title":2288,"titleTemplate":7,"icon":2289,"path":2290,"stem":2291,"children":2292,"page":8},"更多","lucide:menu","\u002Fdocs\u002Fmore","docs\u002F09.more",[2293,2297,2301,2305,2309,2313],{"title":2294,"path":2295,"stem":2296,"titleTemplate":7},"定价","\u002Fdocs\u002Fmore\u002Fpricing","docs\u002F09.more\u002F01.pricing",{"title":2298,"path":2299,"stem":2300,"titleTemplate":7},"平台赞赏","\u002Fdocs\u002Fmore\u002Fsponsor","docs\u002F09.more\u002F02.sponsor",{"title":2302,"path":2303,"stem":2304,"titleTemplate":7},"云原生构建-企业版","\u002Fdocs\u002Fmore\u002Fenterprise","docs\u002F09.more\u002F03.enterprise",{"title":2306,"path":2307,"stem":2308,"titleTemplate":7},"产品Logo","\u002Fdocs\u002Fmore\u002Flogo","docs\u002F09.more\u002F04.logo",{"title":2310,"path":2311,"stem":2312,"titleTemplate":7},"集成TAPD","\u002Fdocs\u002Fmore\u002Ftapd","docs\u002F09.more\u002F05.tapd",{"title":2314,"path":2315,"stem":2316,"children":2317,"titleTemplate":7,"icon":2324},"开发者","\u002Fdocs\u002Fmore\u002Fdevelops","docs\u002F09.more\u002F08.develops\u002F01.index",[2318,2320],{"title":2319,"path":2315,"stem":2316,"titleTemplate":7},"徽章",{"title":2321,"path":2322,"stem":2323,"titleTemplate":7},"Open API","\u002Fdocs\u002Fmore\u002Fdevelops\u002Fopenapi","docs\u002F09.more\u002F08.develops\u002F02.openapi","lucide:code",{"title":2326,"titleTemplate":7,"icon":2327,"path":2328,"stem":2329,"children":2330,"page":8},"目录结构","vscode-icons:default-folder","\u002Fdocs\u002Ftree","docs\u002F22.tree",[2331,2366,2376,2390,2395,2399,2403,2408,2413,2418],{"title":2332,"titleTemplate":7,"defaultOpen":201,"icon":2333,"path":2334,"stem":2335,"children":2336,"page":8},".cnb\u002F","vscode-icons:folder-type-app","\u002Fdocs\u002Ftree\u002F.cnb","docs\u002F22.tree\u002F0..cnb",[2337,2348,2353,2358,2362],{"title":2338,"titleTemplate":7,"defaultOpen":201,"icon":2339,"path":2340,"stem":2341,"children":2342,"page":8},"ISSUE_TEMPLATE\u002F","vscode-icons:folder-type-package","\u002Fdocs\u002Ftree\u002F.cnb\u002Fissue_template","docs\u002F22.tree\u002F0..cnb\u002F99.ISSUE_TEMPLATE",[2343],{"title":2344,"path":2345,"stem":2346,"titleTemplate":7,"icon":2347},"0-feedback","\u002Fdocs\u002Ftree\u002F.cnb\u002Fissue_template\u002F0-feedback","docs\u002F22.tree\u002F0..cnb\u002F99.ISSUE_TEMPLATE\u002F0-feedback","vscode-icons:folder-type-tools",{"title":2349,"path":2350,"stem":2351,"titleTemplate":7,"icon":2352},"logo.svg","\u002Fdocs\u002Ftree\u002F.cnb\u002Flogo_svg","docs\u002F22.tree\u002F0..cnb\u002Flogo_svg","vscode-icons:file-type-image",{"title":2354,"path":2355,"stem":2356,"titleTemplate":7,"icon":2357},"settings.yml","\u002Fdocs\u002Ftree\u002F.cnb\u002Fsettings_yml","docs\u002F22.tree\u002F0..cnb\u002Fsettings_yml","vscode-icons:file-type-light-config",{"title":2359,"path":2360,"stem":2361,"titleTemplate":7,"icon":2357},"tag_deploy.yml","\u002Fdocs\u002Ftree\u002F.cnb\u002Ftag_deploy_yml","docs\u002F22.tree\u002F0..cnb\u002Ftag_deploy_yml",{"title":2363,"path":2364,"stem":2365,"titleTemplate":7,"icon":2357},"web_trigger.yml","\u002Fdocs\u002Ftree\u002F.cnb\u002Fweb_trigger_yml","docs\u002F22.tree\u002F0..cnb\u002Fweb_trigger_yml",{"title":2367,"titleTemplate":7,"defaultOpen":201,"icon":2333,"path":2368,"stem":2369,"children":2370,"page":8},".ide\u002F","\u002Fdocs\u002Ftree\u002F.ide","docs\u002F22.tree\u002F0..ide",[2371],{"title":2372,"path":2373,"stem":2374,"titleTemplate":7,"icon":2375},"Dockerfile","\u002Fdocs\u002Ftree\u002F.ide\u002Fdockerfile","docs\u002F22.tree\u002F0..ide\u002FDockerfile","vscode-icons:default-file",{"title":2377,"titleTemplate":7,"defaultOpen":8,"icon":2378,"path":2379,"stem":2380,"children":2381,"page":8},"node_modules\u002F","vscode-icons:folder-type-node","\u002Fdocs\u002Ftree\u002Fnode-modules","docs\u002F22.tree\u002F0.node-modules",[2382,2386],{"title":2383,"path":2384,"stem":2385,"titleTemplate":7,"icon":2378},".bin\u002F","\u002Fdocs\u002Ftree\u002Fnode-modules\u002Fbin","docs\u002F22.tree\u002F0.node-modules\u002Fbin",{"title":2387,"path":2388,"stem":2389,"titleTemplate":7,"icon":2378},".cache\u002F","\u002Fdocs\u002Ftree\u002Fnode-modules\u002Fcache","docs\u002F22.tree\u002F0.node-modules\u002Fcache",{"title":2391,"path":2392,"stem":2393,"titleTemplate":7,"icon":2394},"public\u002F","\u002Fdocs\u002Ftree\u002Fpublic","docs\u002F22.tree\u002F0.public","vscode-icons:folder-type-public",{"title":2396,"path":2397,"stem":2398,"titleTemplate":7,"icon":2375},"README.md","\u002Fdocs\u002Ftree\u002Freadme","docs\u002F22.tree\u002F1.README",{"title":2400,"path":2401,"stem":2402,"titleTemplate":7,"icon":2357},".cnb.yml","\u002Fdocs\u002Ftree\u002Fcnb_yml","docs\u002F22.tree\u002F1.cnb_yml",{"title":2404,"path":2405,"stem":2406,"titleTemplate":7,"icon":2407},".env","\u002Fdocs\u002Ftree\u002Fenv","docs\u002F22.tree\u002F1.env","vscode-icons:file-type-dotenv",{"title":2409,"path":2410,"stem":2411,"titleTemplate":7,"icon":2412},".gitignore","\u002Fdocs\u002Ftree\u002Fgitignore","docs\u002F22.tree\u002F1.gitignore","vscode-icons:file-type-git",{"title":2414,"path":2415,"stem":2416,"titleTemplate":7,"icon":2417},"package.json","\u002Fdocs\u002Ftree\u002Fpackage","docs\u002F22.tree\u002F1.package","vscode-icons:file-type-npm",{"title":2419,"path":2420,"stem":2421,"titleTemplate":7,"icon":2417},"pnpm-lock.yaml","\u002Fdocs\u002Ftree\u002Fpnpm-lock_yaml","docs\u002F22.tree\u002F1.pnpm-lock_yaml",{"title":2423,"titleTemplate":7,"icon":2424,"path":2425,"stem":2426,"children":2427},"API","lucide:code-xml","\u002Fdocs\u002Fapi","docs\u002F44.api\u002Findex",[2428,2430,2434,2438,2442,2446,2450,2454,2458,2462,2466,2470,2474,2478,2482,2486,2490,2494,2498,2502,2506,2510,2514,2518,2522,2526,2530,2534,2538],{"title":2429,"path":2425,"stem":2426,"titleTemplate":7},"API 介绍",{"title":2431,"path":2432,"stem":2433,"titleTemplate":7},"活动 Activities","\u002Fdocs\u002Fapi\u002Factivities","docs\u002F44.api\u002Factivities",{"title":2435,"path":2436,"stem":2437,"titleTemplate":7},"AI 功能","\u002Fdocs\u002Fapi\u002Fai","docs\u002F44.api\u002Fai",{"title":2439,"path":2440,"stem":2441,"titleTemplate":7},"资源 Assets","\u002Fdocs\u002Fapi\u002Fassets","docs\u002F44.api\u002Fassets",{"title":2443,"path":2444,"stem":2445,"titleTemplate":7},"徽章 Badge","\u002Fdocs\u002Fapi\u002Fbadge","docs\u002F44.api\u002Fbadge",{"title":2447,"path":2448,"stem":2449,"titleTemplate":7},"构建 Build","\u002Fdocs\u002Fapi\u002Fbuild","docs\u002F44.api\u002Fbuild",{"title":2451,"path":2452,"stem":2453,"titleTemplate":7},"计费 Charge","\u002Fdocs\u002Fapi\u002Fcharge","docs\u002F44.api\u002Fcharge",{"title":2455,"path":2456,"stem":2457,"titleTemplate":7},"协作者 Collaborators","\u002Fdocs\u002Fapi\u002Fcollaborators","docs\u002F44.api\u002Fcollaborators",{"title":2459,"path":2460,"stem":2461,"titleTemplate":7},"事件 Event","\u002Fdocs\u002Fapi\u002Fevent","docs\u002F44.api\u002Fevent",{"title":2463,"path":2464,"stem":2465,"titleTemplate":7},"关注者 Followers","\u002Fdocs\u002Fapi\u002Ffollowers","docs\u002F44.api\u002Ffollowers",{"title":2467,"path":2468,"stem":2469,"titleTemplate":7},"Git 操作","\u002Fdocs\u002Fapi\u002Fgit","docs\u002F44.api\u002Fgit",{"title":2471,"path":2472,"stem":2473,"titleTemplate":7},"Git 设置","\u002Fdocs\u002Fapi\u002Fgit-settings","docs\u002F44.api\u002Fgit-settings",{"title":2475,"path":2476,"stem":2477,"titleTemplate":7},"问题 Issues","\u002Fdocs\u002Fapi\u002Fissues","docs\u002F44.api\u002Fissues",{"title":2479,"path":2480,"stem":2481,"titleTemplate":7},"知识库 KnowledgeBase","\u002Fdocs\u002Fapi\u002Fknowledge-base","docs\u002F44.api\u002Fknowledge-base",{"title":2483,"path":2484,"stem":2485,"titleTemplate":7},"成员 Members","\u002Fdocs\u002Fapi\u002Fmembers","docs\u002F44.api\u002Fmembers",{"title":2487,"path":2488,"stem":2489,"titleTemplate":7},"任务 Missions","\u002Fdocs\u002Fapi\u002Fmissions","docs\u002F44.api\u002Fmissions",{"title":2491,"path":2492,"stem":2493,"titleTemplate":7},"组织 Organizations","\u002Fdocs\u002Fapi\u002Forganizations","docs\u002F44.api\u002Forganizations",{"title":2495,"path":2496,"stem":2497,"titleTemplate":7},"Pull Requests","\u002Fdocs\u002Fapi\u002Fpulls","docs\u002F44.api\u002Fpulls",{"title":2499,"path":2500,"stem":2501,"titleTemplate":7},"注册表 Registries","\u002Fdocs\u002Fapi\u002Fregistries","docs\u002F44.api\u002Fregistries",{"title":2503,"path":2504,"stem":2505,"titleTemplate":7},"发布 Releases","\u002Fdocs\u002Fapi\u002Freleases","docs\u002F44.api\u002Freleases",{"title":2507,"path":2508,"stem":2509,"titleTemplate":7},"代码问题","\u002Fdocs\u002Fapi\u002Frepo-code-issue","docs\u002F44.api\u002Frepo-code-issue",{"title":2511,"path":2512,"stem":2513,"titleTemplate":7},"贡献者","\u002Fdocs\u002Fapi\u002Frepo-contributor","docs\u002F44.api\u002Frepo-contributor",{"title":2515,"path":2516,"stem":2517,"titleTemplate":7},"仓库标签","\u002Fdocs\u002Fapi\u002Frepo-labels","docs\u002F44.api\u002Frepo-labels",{"title":2519,"path":2520,"stem":2521,"titleTemplate":7},"仓库 Repositories","\u002Fdocs\u002Fapi\u002Frepositories","docs\u002F44.api\u002Frepositories",{"title":2523,"path":2524,"stem":2525,"titleTemplate":7},"搜索 Search","\u002Fdocs\u002Fapi\u002Fsearch","docs\u002F44.api\u002Fsearch",{"title":2527,"path":2528,"stem":2529,"titleTemplate":7},"安全 Security","\u002Fdocs\u002Fapi\u002Fsecurity","docs\u002F44.api\u002Fsecurity",{"title":2531,"path":2532,"stem":2533,"titleTemplate":7},"星标 Starring","\u002Fdocs\u002Fapi\u002Fstarring","docs\u002F44.api\u002Fstarring",{"title":2535,"path":2536,"stem":2537,"titleTemplate":7},"用户 Users","\u002Fdocs\u002Fapi\u002Fusers","docs\u002F44.api\u002Fusers",{"title":2539,"path":2540,"stem":2541,"titleTemplate":7},"工作空间 Workspace","\u002Fdocs\u002Fapi\u002Fworkspace","docs\u002F44.api\u002Fworkspace",{"title":2543,"path":2544,"stem":2545,"children":2546,"titleTemplate":7,"icon":2555},"社区","\u002Fdocs\u002Fcommunity","docs\u002F55.community\u002Findex",[2547,2550],{"title":2548,"path":2544,"stem":2545,"titleTemplate":7,"icon":2549},"获取帮助","lucide:life-buoy",{"title":2551,"path":2552,"stem":2553,"titleTemplate":7,"icon":2554},"报告 Bug","\u002Fdocs\u002Fcommunity\u002Freporting-bugs","docs\u002F55.community\u002Freporting-bugs","lucide:bug","lucide:messages-square",{"title":2140,"titleTemplate":7,"icon":2557,"path":2558,"stem":2559,"children":2560},"lucide:layout","\u002Fdocs\u002Fexamples","docs\u002Fexamples\u002Findex",[2561,2563,2573],{"title":2562,"path":2558,"stem":2559,"titleTemplate":7},"CNB完整示例",{"title":2564,"path":2565,"stem":2566,"children":2567,"titleTemplate":7},"构建环境和开发环境","\u002Fdocs\u002Fexamples\u002Ffeatures","docs\u002Fexamples\u002F1.features\u002Findex",[2568,2569],{"title":2564,"path":2565,"stem":2566,"titleTemplate":7},{"title":2570,"path":2571,"stem":2572,"titleTemplate":7},"Issue\u002Fpr 使用场景","\u002Fdocs\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002Fexamples\u002F1.features\u002F5.layouts",{"title":2574,"path":2575,"stem":2576,"children":2577,"titleTemplate":7},"路由","\u002Fdocs\u002Fexamples\u002Frouting","docs\u002Fexamples\u002F2.routing\u002Findex",[2578,2579],{"title":2574,"path":2575,"stem":2576,"titleTemplate":7},{"title":2580,"path":2581,"stem":2582,"titleTemplate":7},"中间件","\u002Fdocs\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002Fexamples\u002F2.routing\u002Fmiddleware",{"title":2584,"path":2585,"stem":2586,"children":2587,"page":8},"Blog","\u002Fblog","blog",[2588,2592,2596,2600,2604],{"title":2589,"path":2590,"stem":2591},"提示框组件演示","\u002Fblog\u002Fdemo-feedback","blog\u002Fdemo-feedback",{"title":2593,"path":2594,"stem":2595},"DOM 操作基础","\u002Fblog\u002Fdom-manipulation","blog\u002Fdom-manipulation",{"title":2597,"path":2598,"stem":2599},"HTML 基础入门","\u002Fblog\u002Fhtml-basics","blog\u002Fhtml-basics",{"title":2601,"path":2602,"stem":2603},"JavaScript 异步编程","\u002Fblog\u002Fjavascript-async","blog\u002Fjavascript-async",{"title":2605,"path":2606,"stem":2607},"响应式网页设计","\u002Fblog\u002Fresponsive-design","blog\u002Fresponsive-design",{"id":2609,"title":2047,"body":2610,"description":4625,"extension":188,"links":7,"meta":4626,"navigation":201,"path":2048,"seo":4627,"stem":2049,"titleTemplate":7,"__hash__":4628},"docs\u002Fdocs\u002F03.build\u002F01.basic-usage\u002F04.configuration.md",{"type":10,"value":2611,"toc":4610},[2612,2614,2617,2626,2635,2641,2742,2745,2775,2778,2786,2789,2792,2795,2798,2998,3001,3175,3192,3199,3205,3211,3214,3221,3224,3229,3236,3243,3246,3257,3265,3269,3274,3288,3294,3297,3300,3303,3306,3399,3402,3408,3412,3415,3511,3513,3639,3642,3792,3795,3940,3943,3946,3960,3967,3973,3992,3995,4008,4029,4033,4036,4114,4116,4270,4273,4348,4351,4354,4439,4441,4522,4526,4542,4545,4585,4607],[13,2613,2047],{"id":2047},[21,2615,2616],{"id":2616},"简介",[17,2618,2619,2620,2622,2623,2625],{},"云原生构建配置文件(",[32,2621,2400],{},")描述了当仓库发生一些事件时（有新的 Commit 被推送、有新的 PR 请求等），\n",[32,2624,2026],{}," 是否应该启动构建任务，如果启动构建的话，构建任务的每一步分别做什么。",[17,2627,2628,2630,2631,2634],{},[32,2629,2026],{}," 的配置文件格式是 ",[32,2632,2633],{},"YAML","，这一点与业界主流 CI 服务相同。",[17,2636,2637,2638,2640],{},"这是一个简单的、可工作的 ",[32,2639,2026],{}," 配置文件：",[25,2642,2646],{"className":2643,"code":2644,"language":2645,"meta":30,"style":30},"language-yaml shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","main: # 触发分支\n  push: # 触发事件\n    - docker:\n        image: node:22 # 流水线执行环境，可以指定任意docker镜像\n      stages:\n        - name: install\n          script: npm install\n        - name: test\n          script: npm test\n","yaml",[32,2647,2648,2658,2668,2679,2692,2699,2712,2722,2733],{"__ignoreMap":30},[35,2649,2650,2652,2654],{"class":37,"line":38},[35,2651,210],{"class":93},[35,2653,59],{"class":86},[35,2655,2657],{"class":2656},"sWuyu"," # 触发分支\n",[35,2659,2660,2663,2665],{"class":37,"line":90},[35,2661,2662],{"class":93},"  push",[35,2664,59],{"class":86},[35,2666,2667],{"class":2656}," # 触发事件\n",[35,2669,2670,2673,2676],{"class":37,"line":112},[35,2671,2672],{"class":86},"    -",[35,2674,2675],{"class":93}," docker",[35,2677,2678],{"class":86},":\n",[35,2680,2681,2684,2686,2689],{"class":37,"line":162},[35,2682,2683],{"class":93},"        image",[35,2685,59],{"class":86},[35,2687,2688],{"class":45}," node:22",[35,2690,2691],{"class":2656}," # 流水线执行环境，可以指定任意docker镜像\n",[35,2693,2694,2697],{"class":37,"line":166},[35,2695,2696],{"class":93},"      stages",[35,2698,2678],{"class":86},[35,2700,2701,2704,2707,2709],{"class":37,"line":170},[35,2702,2703],{"class":86},"        -",[35,2705,2706],{"class":93}," name",[35,2708,59],{"class":86},[35,2710,2711],{"class":45}," install\n",[35,2713,2714,2717,2719],{"class":37,"line":174},[35,2715,2716],{"class":93},"          script",[35,2718,59],{"class":86},[35,2720,2721],{"class":45}," npm install\n",[35,2723,2724,2726,2728,2730],{"class":37,"line":178},[35,2725,2703],{"class":86},[35,2727,2706],{"class":93},[35,2729,59],{"class":86},[35,2731,2732],{"class":45}," test\n",[35,2734,2735,2737,2739],{"class":37,"line":181},[35,2736,2716],{"class":93},[35,2738,59],{"class":86},[35,2740,2741],{"class":45}," npm test\n",[17,2743,2744],{},"这个案例描述的流程如下：",[2746,2747,2748,2758,2765],"ol",{},[126,2749,2750,2751,2753,2754,2757],{},"声明了在 ",[32,2752,210],{}," 分支在收到 ",[32,2755,2756],{},"push"," 事件时（即有新的 Commit 推送到 main 分支）",[126,2759,2760,2761,2764],{},"会选择 Docker 镜像 ",[32,2762,2763],{},"node:22"," 作为执行环境",[126,2766,2767,2768,2771,2772],{},"依次执行任务 ",[32,2769,2770],{},"npm install"," 和 ",[32,2773,2774],{},"npm test",[21,2776,2777],{"id":2777},"存放位置",[17,2779,2780,2782,2783,2785],{},[32,2781,2026],{}," 约定的配置文件命名为 ",[32,2784,2400],{},"，存放于仓库根目录下，配置文件即代码。",[17,2787,2788],{},"这意味着，配置文件可以通过 PR 进行变更，开源协作场景下，这十分重要。",[17,2790,2791],{},"构建流程纳入版本管理，与源代码保持相同的透明度和变更流程，修改历史很容易追溯。",[21,2793,2794],{"id":2794},"基本语法结构",[17,2796,2797],{},"配置文件的基本语法结构如下所示：",[25,2799,2801],{"className":2643,"code":2800,"language":2645,"meta":30,"style":30},"# 流水线结构：数组形式\nmain:\n  push:\n    # main 分支 - push 事件包含两条流水线：push-pipeline1 和 push-pipeline2\n    - name: push-pipeline1 # 流水线名称，可省略\n      stages:\n        - name: job1\n          script: echo 1\n    - name: push-pipeline2 # 流水线名称，可省略\n      stages:\n        - name: job2\n          script: echo 2\n\n  pull_request:\n    # main 分支 - pull_request 事件包含两条流水线：pr-pipeline1 和 pr-pipeline2\n    - name: pr-pipeline1 # 流水线名称，可省略\n      stages:\n        - name: job1\n          script: echo 1\n    - name: pr-pipeline2 # 流水线名称，可省略\n      stages:\n        - name: job2\n          script: echo 2\n",[32,2802,2803,2808,2814,2820,2825,2839,2845,2856,2865,2878,2884,2895,2904,2909,2916,2922,2935,2942,2952,2960,2973,2980,2990],{"__ignoreMap":30},[35,2804,2805],{"class":37,"line":38},[35,2806,2807],{"class":2656},"# 流水线结构：数组形式\n",[35,2809,2810,2812],{"class":37,"line":90},[35,2811,210],{"class":93},[35,2813,2678],{"class":86},[35,2815,2816,2818],{"class":37,"line":112},[35,2817,2662],{"class":93},[35,2819,2678],{"class":86},[35,2821,2822],{"class":37,"line":162},[35,2823,2824],{"class":2656},"    # main 分支 - push 事件包含两条流水线：push-pipeline1 和 push-pipeline2\n",[35,2826,2827,2829,2831,2833,2836],{"class":37,"line":166},[35,2828,2672],{"class":86},[35,2830,2706],{"class":93},[35,2832,59],{"class":86},[35,2834,2835],{"class":45}," push-pipeline1",[35,2837,2838],{"class":2656}," # 流水线名称，可省略\n",[35,2840,2841,2843],{"class":37,"line":170},[35,2842,2696],{"class":93},[35,2844,2678],{"class":86},[35,2846,2847,2849,2851,2853],{"class":37,"line":174},[35,2848,2703],{"class":86},[35,2850,2706],{"class":93},[35,2852,59],{"class":86},[35,2854,2855],{"class":45}," job1\n",[35,2857,2858,2860,2862],{"class":37,"line":178},[35,2859,2716],{"class":93},[35,2861,59],{"class":86},[35,2863,2864],{"class":45}," echo 1\n",[35,2866,2867,2869,2871,2873,2876],{"class":37,"line":181},[35,2868,2672],{"class":86},[35,2870,2706],{"class":93},[35,2872,59],{"class":86},[35,2874,2875],{"class":45}," push-pipeline2",[35,2877,2838],{"class":2656},[35,2879,2880,2882],{"class":37,"line":185},[35,2881,2696],{"class":93},[35,2883,2678],{"class":86},[35,2885,2886,2888,2890,2892],{"class":37,"line":1000},[35,2887,2703],{"class":86},[35,2889,2706],{"class":93},[35,2891,59],{"class":86},[35,2893,2894],{"class":45}," job2\n",[35,2896,2897,2899,2901],{"class":37,"line":1025},[35,2898,2716],{"class":93},[35,2900,59],{"class":86},[35,2902,2903],{"class":45}," echo 2\n",[35,2905,2906],{"class":37,"line":1256},[35,2907,2908],{"emptyLinePlaceholder":201},"\n",[35,2910,2911,2914],{"class":37,"line":164},[35,2912,2913],{"class":93},"  pull_request",[35,2915,2678],{"class":86},[35,2917,2919],{"class":37,"line":2918},15,[35,2920,2921],{"class":2656},"    # main 分支 - pull_request 事件包含两条流水线：pr-pipeline1 和 pr-pipeline2\n",[35,2923,2924,2926,2928,2930,2933],{"class":37,"line":157},[35,2925,2672],{"class":86},[35,2927,2706],{"class":93},[35,2929,59],{"class":86},[35,2931,2932],{"class":45}," pr-pipeline1",[35,2934,2838],{"class":2656},[35,2936,2938,2940],{"class":37,"line":2937},17,[35,2939,2696],{"class":93},[35,2941,2678],{"class":86},[35,2943,2944,2946,2948,2950],{"class":37,"line":864},[35,2945,2703],{"class":86},[35,2947,2706],{"class":93},[35,2949,59],{"class":86},[35,2951,2855],{"class":45},[35,2953,2954,2956,2958],{"class":37,"line":881},[35,2955,2716],{"class":93},[35,2957,59],{"class":86},[35,2959,2864],{"class":45},[35,2961,2962,2964,2966,2968,2971],{"class":37,"line":1009},[35,2963,2672],{"class":86},[35,2965,2706],{"class":93},[35,2967,59],{"class":86},[35,2969,2970],{"class":45}," pr-pipeline2",[35,2972,2838],{"class":2656},[35,2974,2976,2978],{"class":37,"line":2975},21,[35,2977,2696],{"class":93},[35,2979,2678],{"class":86},[35,2981,2982,2984,2986,2988],{"class":37,"line":732},[35,2983,2703],{"class":86},[35,2985,2706],{"class":93},[35,2987,59],{"class":86},[35,2989,2894],{"class":45},[35,2991,2992,2994,2996],{"class":37,"line":461},[35,2993,2716],{"class":93},[35,2995,59],{"class":86},[35,2997,2903],{"class":45},[17,2999,3000],{},"等价与以下写法：",[25,3002,3004],{"className":2643,"code":3003,"language":2645,"meta":30,"style":30},"# 流水线结构：对象形式\nmain:\n  push:\n    # main 分支 - push 事件包含两条流水线：push-pipeline1 和 push-pipeline2\n    push-pipeline1: # 流水线名称，必须唯一\n      stages:\n        - name: job1\n          script: echo 1\n    push-pipeline2: # 流水线名称，必须唯一\n      stages:\n        - name: job2\n          script: echo 2\n\n  pull_request:\n    # main 分支 - pull_request 事件包含两条流水线：pr-pipeline1 和 pr-pipeline2\n    pr-pipeline1: # 流水线名称，必须唯一\n      stages:\n        - name: job1\n          script: echo 1\n    pr-pipeline2: # 流水线名称，必须唯一\n      stages:\n        - name: job2\n          script: echo 3\n",[32,3005,3006,3011,3017,3023,3027,3037,3043,3053,3061,3070,3076,3086,3094,3098,3104,3108,3117,3123,3133,3141,3150,3156,3166],{"__ignoreMap":30},[35,3007,3008],{"class":37,"line":38},[35,3009,3010],{"class":2656},"# 流水线结构：对象形式\n",[35,3012,3013,3015],{"class":37,"line":90},[35,3014,210],{"class":93},[35,3016,2678],{"class":86},[35,3018,3019,3021],{"class":37,"line":112},[35,3020,2662],{"class":93},[35,3022,2678],{"class":86},[35,3024,3025],{"class":37,"line":162},[35,3026,2824],{"class":2656},[35,3028,3029,3032,3034],{"class":37,"line":166},[35,3030,3031],{"class":93},"    push-pipeline1",[35,3033,59],{"class":86},[35,3035,3036],{"class":2656}," # 流水线名称，必须唯一\n",[35,3038,3039,3041],{"class":37,"line":170},[35,3040,2696],{"class":93},[35,3042,2678],{"class":86},[35,3044,3045,3047,3049,3051],{"class":37,"line":174},[35,3046,2703],{"class":86},[35,3048,2706],{"class":93},[35,3050,59],{"class":86},[35,3052,2855],{"class":45},[35,3054,3055,3057,3059],{"class":37,"line":178},[35,3056,2716],{"class":93},[35,3058,59],{"class":86},[35,3060,2864],{"class":45},[35,3062,3063,3066,3068],{"class":37,"line":181},[35,3064,3065],{"class":93},"    push-pipeline2",[35,3067,59],{"class":86},[35,3069,3036],{"class":2656},[35,3071,3072,3074],{"class":37,"line":185},[35,3073,2696],{"class":93},[35,3075,2678],{"class":86},[35,3077,3078,3080,3082,3084],{"class":37,"line":1000},[35,3079,2703],{"class":86},[35,3081,2706],{"class":93},[35,3083,59],{"class":86},[35,3085,2894],{"class":45},[35,3087,3088,3090,3092],{"class":37,"line":1025},[35,3089,2716],{"class":93},[35,3091,59],{"class":86},[35,3093,2903],{"class":45},[35,3095,3096],{"class":37,"line":1256},[35,3097,2908],{"emptyLinePlaceholder":201},[35,3099,3100,3102],{"class":37,"line":164},[35,3101,2913],{"class":93},[35,3103,2678],{"class":86},[35,3105,3106],{"class":37,"line":2918},[35,3107,2921],{"class":2656},[35,3109,3110,3113,3115],{"class":37,"line":157},[35,3111,3112],{"class":93},"    pr-pipeline1",[35,3114,59],{"class":86},[35,3116,3036],{"class":2656},[35,3118,3119,3121],{"class":37,"line":2937},[35,3120,2696],{"class":93},[35,3122,2678],{"class":86},[35,3124,3125,3127,3129,3131],{"class":37,"line":864},[35,3126,2703],{"class":86},[35,3128,2706],{"class":93},[35,3130,59],{"class":86},[35,3132,2855],{"class":45},[35,3134,3135,3137,3139],{"class":37,"line":881},[35,3136,2716],{"class":93},[35,3138,59],{"class":86},[35,3140,2864],{"class":45},[35,3142,3143,3146,3148],{"class":37,"line":1009},[35,3144,3145],{"class":93},"    pr-pipeline2",[35,3147,59],{"class":86},[35,3149,3036],{"class":2656},[35,3151,3152,3154],{"class":37,"line":2975},[35,3153,2696],{"class":93},[35,3155,2678],{"class":86},[35,3157,3158,3160,3162,3164],{"class":37,"line":732},[35,3159,2703],{"class":86},[35,3161,2706],{"class":93},[35,3163,59],{"class":86},[35,3165,2894],{"class":45},[35,3167,3168,3170,3172],{"class":37,"line":461},[35,3169,2716],{"class":93},[35,3171,59],{"class":86},[35,3173,3174],{"class":45}," echo 3\n",[17,3176,3177,3178,3180,3181,2771,3183,3186,3187,3191],{},"其中 ",[32,3179,210],{}," 表示分支名称， ",[32,3182,2756],{},[32,3184,3185],{},"pull_request"," 表示",[129,3188,3190],{"href":3189},".\u002Fgrammar#trigger-event","触发事件","。",[17,3193,3194,3195,3198],{},"一个事件包含多个 ",[32,3196,3197],{},"pipeline","，支持数组和对象两种形式，并发执行。",[17,3200,3201,3202,3204],{},"一个 ",[32,3203,3197],{}," 包含一组顺序执行的任务，在同一个构建环境（物理机、虚拟机或 Docker 容器）中执行。",[17,3206,3207,3208],{},"详细语法说明可参考： ",[129,3209,2051],{"href":3210},".\u002Fgrammar",[21,3212,3213],{"id":3213},"配置文件版本选择",[17,3215,3216,3217],{},"同",[129,3218,3220],{"href":3219},".\u002Ftrigger-rule#%E4%BB%A3%E7%A0%81%E7%89%88%E6%9C%AC%E9%80%89%E6%8B%A9","代码版本选择",[21,3222,3223],{"id":3223},"语法检查和自动补全",[3225,3226,3228],"h3",{"id":3227},"vscode","VSCode",[17,3230,3231,3232,3235],{},"推荐使用 ",[129,3233,2160],{"href":3234},"..\u002F..\u002Fworkspaces\u002Fbasic-usage"," 书写配置文件，因为原生支持语法检查和自动补全，效果如下：",[17,3237,3238],{},[3239,3240],"img",{"alt":3241,"src":3242},"yaml-auto","https:\u002F\u002Fdocs.cnb.cool\u002Fimages\u002Fyaml-auto.gif",[17,3244,3245],{},"本地开发配置方法，以 VSCode 为例：",[17,3247,3248,3249,3252,3253,3256],{},"先安装 ",[32,3250,3251],{},"redhat.vscode-yaml"," 插件，然后在 ",[32,3254,3255],{},"settings.json"," 中加入以下配置：",[25,3258,3263],{"className":3259,"code":3261,"language":3262,"meta":30},[3260],"language-text","\"yaml.schemas\": {\n  \"https:\u002F\u002Fdocs.cnb.cool\u002Fconf-schema-zh.json\": \".cnb.yml\"\n},\n","text",[32,3264,3261],{"__ignoreMap":30},[3225,3266,3268],{"id":3267},"jetbrains","Jetbrains",[17,3270,3271],{},[3239,3272],{"alt":3241,"src":3273},"https:\u002F\u002Fdocs.cnb.cool\u002Fimages\u002Fjetbrains.png",[2746,3275,3276,3279,3282,3285],{},[126,3277,3278],{},"「Settings」「Languages & Frameworks」「Schemas and DTDs」「JSON Schema Mappings」",[126,3280,3281],{},"点击新增按钮，设置 「Name」（名称随意填写）",[126,3283,3284],{},"设置「Schema file or URL」",[126,3286,3287],{},"「Add mapping for a file」",[25,3289,3292],{"className":3290,"code":3291,"language":3262,"meta":30},[3260],"https:\u002F\u002Fdocs.cnb.cool\u002Fconf-schema-zh.json\n",[32,3293,3291],{"__ignoreMap":30},[21,3295,3296],{"id":3296},"配置复用",[3225,3298,3299],{"id":3299},"anchor",[17,3301,3302],{},"在 YAML 中，锚点（Anchor）和引用（Alias）允许同一个文件中复用配置，从而避免重复并保持文件的简洁。",[17,3304,3305],{},"示例：",[25,3307,3309],{"className":2643,"code":3308,"language":2645,"meta":30,"style":30},"# .cnb.yml\n# 通用的流水线配置\n.pipeline-config: &pipeline-config\n  stages:\n    - echo \"do something\"\nmain:\n  push:\n    # 引用 pipeline-config\n    - *pipeline-config\ndev:\n  push:\n    # 引用 pipeline-config\n    - *pipeline-config\n",[32,3310,3311,3316,3321,3334,3341,3348,3354,3360,3365,3374,3381,3387,3391],{"__ignoreMap":30},[35,3312,3313],{"class":37,"line":38},[35,3314,3315],{"class":2656},"# .cnb.yml\n",[35,3317,3318],{"class":37,"line":90},[35,3319,3320],{"class":2656},"# 通用的流水线配置\n",[35,3322,3323,3326,3328,3331],{"class":37,"line":112},[35,3324,3325],{"class":93},".pipeline-config",[35,3327,59],{"class":86},[35,3329,3330],{"class":71}," &",[35,3332,3333],{"class":41},"pipeline-config\n",[35,3335,3336,3339],{"class":37,"line":162},[35,3337,3338],{"class":93},"  stages",[35,3340,2678],{"class":86},[35,3342,3343,3345],{"class":37,"line":166},[35,3344,2672],{"class":86},[35,3346,3347],{"class":45}," echo \"do something\"\n",[35,3349,3350,3352],{"class":37,"line":170},[35,3351,210],{"class":93},[35,3353,2678],{"class":86},[35,3355,3356,3358],{"class":37,"line":174},[35,3357,2662],{"class":93},[35,3359,2678],{"class":86},[35,3361,3362],{"class":37,"line":178},[35,3363,3364],{"class":2656},"    # 引用 pipeline-config\n",[35,3366,3367,3369,3372],{"class":37,"line":181},[35,3368,2672],{"class":86},[35,3370,3371],{"class":71}," *",[35,3373,3333],{"class":82},[35,3375,3376,3379],{"class":37,"line":185},[35,3377,3378],{"class":93},"dev",[35,3380,2678],{"class":86},[35,3382,3383,3385],{"class":37,"line":1000},[35,3384,2662],{"class":93},[35,3386,2678],{"class":86},[35,3388,3389],{"class":37,"line":1025},[35,3390,3364],{"class":2656},[35,3392,3393,3395,3397],{"class":37,"line":1256},[35,3394,2672],{"class":86},[35,3396,3371],{"class":71},[35,3398,3333],{"class":82},[3225,3400,3401],{"id":3401},"include",[17,3403,3404,3405,3407],{},"利用 ",[32,3406,3401],{}," 参数，可以在当前文件导入当前仓库或其他仓库上的文件。依此可以对配置文件进行拆分，方便复用和维护。",[3409,3410,3411],"h4",{"id":3411},"使用示例",[17,3413,3414],{},"template.yml",[25,3416,3418],{"className":2643,"code":3417,"language":2645,"meta":30,"style":30},"# template.yml\nmain:\n  push:\n    pipeline_2:\n      env:\n        ENV_KEY1: xxx\n        ENV_KEY3: inner\n      services:\n        - docker\n      stages:\n        - name: echo\n          script: echo 222\n",[32,3419,3420,3425,3431,3437,3444,3451,3461,3471,3478,3485,3491,3502],{"__ignoreMap":30},[35,3421,3422],{"class":37,"line":38},[35,3423,3424],{"class":2656},"# template.yml\n",[35,3426,3427,3429],{"class":37,"line":90},[35,3428,210],{"class":93},[35,3430,2678],{"class":86},[35,3432,3433,3435],{"class":37,"line":112},[35,3434,2662],{"class":93},[35,3436,2678],{"class":86},[35,3438,3439,3442],{"class":37,"line":162},[35,3440,3441],{"class":93},"    pipeline_2",[35,3443,2678],{"class":86},[35,3445,3446,3449],{"class":37,"line":166},[35,3447,3448],{"class":93},"      env",[35,3450,2678],{"class":86},[35,3452,3453,3456,3458],{"class":37,"line":170},[35,3454,3455],{"class":93},"        ENV_KEY1",[35,3457,59],{"class":86},[35,3459,3460],{"class":45}," xxx\n",[35,3462,3463,3466,3468],{"class":37,"line":174},[35,3464,3465],{"class":93},"        ENV_KEY3",[35,3467,59],{"class":86},[35,3469,3470],{"class":45}," inner\n",[35,3472,3473,3476],{"class":37,"line":178},[35,3474,3475],{"class":93},"      services",[35,3477,2678],{"class":86},[35,3479,3480,3482],{"class":37,"line":181},[35,3481,2703],{"class":86},[35,3483,3484],{"class":45}," docker\n",[35,3486,3487,3489],{"class":37,"line":185},[35,3488,2696],{"class":93},[35,3490,2678],{"class":86},[35,3492,3493,3495,3497,3499],{"class":37,"line":1000},[35,3494,2703],{"class":86},[35,3496,2706],{"class":93},[35,3498,59],{"class":86},[35,3500,3501],{"class":45}," echo\n",[35,3503,3504,3506,3508],{"class":37,"line":1025},[35,3505,2716],{"class":93},[35,3507,59],{"class":86},[35,3509,3510],{"class":45}," echo 222\n",[17,3512,2400],{},[25,3514,3516],{"className":2643,"code":3515,"language":2645,"meta":30,"style":30},"# .cnb.yml\ninclude:\n  - https:\u002F\u002Fcnb.cool\u002F\u003Cyour-repo-slug>\u002F-\u002Fblob\u002Fmain\u002Fxxx\u002Ftemplate.yml\n\nmain:\n  push:\n    pipeline_1:\n      stages:\n        - name: echo\n          script: echo 111\n    pipeline_2:\n      env:\n        ENV_KEY2: xxx\n        ENV_KEY3: outer\n      stages:\n        - name: echo\n          script: echo 333\n",[32,3517,3518,3522,3528,3536,3540,3546,3552,3559,3565,3575,3584,3590,3596,3605,3614,3620,3630],{"__ignoreMap":30},[35,3519,3520],{"class":37,"line":38},[35,3521,3315],{"class":2656},[35,3523,3524,3526],{"class":37,"line":90},[35,3525,3401],{"class":93},[35,3527,2678],{"class":86},[35,3529,3530,3533],{"class":37,"line":112},[35,3531,3532],{"class":86},"  -",[35,3534,3535],{"class":45}," https:\u002F\u002Fcnb.cool\u002F\u003Cyour-repo-slug>\u002F-\u002Fblob\u002Fmain\u002Fxxx\u002Ftemplate.yml\n",[35,3537,3538],{"class":37,"line":162},[35,3539,2908],{"emptyLinePlaceholder":201},[35,3541,3542,3544],{"class":37,"line":166},[35,3543,210],{"class":93},[35,3545,2678],{"class":86},[35,3547,3548,3550],{"class":37,"line":170},[35,3549,2662],{"class":93},[35,3551,2678],{"class":86},[35,3553,3554,3557],{"class":37,"line":174},[35,3555,3556],{"class":93},"    pipeline_1",[35,3558,2678],{"class":86},[35,3560,3561,3563],{"class":37,"line":178},[35,3562,2696],{"class":93},[35,3564,2678],{"class":86},[35,3566,3567,3569,3571,3573],{"class":37,"line":181},[35,3568,2703],{"class":86},[35,3570,2706],{"class":93},[35,3572,59],{"class":86},[35,3574,3501],{"class":45},[35,3576,3577,3579,3581],{"class":37,"line":185},[35,3578,2716],{"class":93},[35,3580,59],{"class":86},[35,3582,3583],{"class":45}," echo 111\n",[35,3585,3586,3588],{"class":37,"line":1000},[35,3587,3441],{"class":93},[35,3589,2678],{"class":86},[35,3591,3592,3594],{"class":37,"line":1025},[35,3593,3448],{"class":93},[35,3595,2678],{"class":86},[35,3597,3598,3601,3603],{"class":37,"line":1256},[35,3599,3600],{"class":93},"        ENV_KEY2",[35,3602,59],{"class":86},[35,3604,3460],{"class":45},[35,3606,3607,3609,3611],{"class":37,"line":164},[35,3608,3465],{"class":93},[35,3610,59],{"class":86},[35,3612,3613],{"class":45}," outer\n",[35,3615,3616,3618],{"class":37,"line":2918},[35,3617,2696],{"class":93},[35,3619,2678],{"class":86},[35,3621,3622,3624,3626,3628],{"class":37,"line":157},[35,3623,2703],{"class":86},[35,3625,2706],{"class":93},[35,3627,59],{"class":86},[35,3629,3501],{"class":45},[35,3631,3632,3634,3636],{"class":37,"line":2937},[35,3633,2716],{"class":93},[35,3635,59],{"class":86},[35,3637,3638],{"class":45}," echo 333\n",[17,3640,3641],{},"合并后的配置",[25,3643,3645],{"className":2643,"code":3644,"language":2645,"meta":30,"style":30},"main:\n  push:\n    pipeline_1: # key不存在，合并时新增\n      stages:\n        - name: echo\n          script: echo 111\n    pipeline_2:\n      env:\n        ENV_KEY1: xxx\n        ENV_KEY2: xxx # key不存在，合并时新增\n        ENV_KEY3: outer # 同名 key， 合并时覆盖\n      services:\n        - docker\n      stages: # 数组在合并时，追加\n        - name: echo\n          script: echo 222\n        - name: echo\n          script: echo 333\n",[32,3646,3647,3653,3659,3668,3674,3684,3692,3698,3704,3712,3723,3735,3741,3747,3756,3766,3774,3784],{"__ignoreMap":30},[35,3648,3649,3651],{"class":37,"line":38},[35,3650,210],{"class":93},[35,3652,2678],{"class":86},[35,3654,3655,3657],{"class":37,"line":90},[35,3656,2662],{"class":93},[35,3658,2678],{"class":86},[35,3660,3661,3663,3665],{"class":37,"line":112},[35,3662,3556],{"class":93},[35,3664,59],{"class":86},[35,3666,3667],{"class":2656}," # key不存在，合并时新增\n",[35,3669,3670,3672],{"class":37,"line":162},[35,3671,2696],{"class":93},[35,3673,2678],{"class":86},[35,3675,3676,3678,3680,3682],{"class":37,"line":166},[35,3677,2703],{"class":86},[35,3679,2706],{"class":93},[35,3681,59],{"class":86},[35,3683,3501],{"class":45},[35,3685,3686,3688,3690],{"class":37,"line":170},[35,3687,2716],{"class":93},[35,3689,59],{"class":86},[35,3691,3583],{"class":45},[35,3693,3694,3696],{"class":37,"line":174},[35,3695,3441],{"class":93},[35,3697,2678],{"class":86},[35,3699,3700,3702],{"class":37,"line":178},[35,3701,3448],{"class":93},[35,3703,2678],{"class":86},[35,3705,3706,3708,3710],{"class":37,"line":181},[35,3707,3455],{"class":93},[35,3709,59],{"class":86},[35,3711,3460],{"class":45},[35,3713,3714,3716,3718,3721],{"class":37,"line":185},[35,3715,3600],{"class":93},[35,3717,59],{"class":86},[35,3719,3720],{"class":45}," xxx",[35,3722,3667],{"class":2656},[35,3724,3725,3727,3729,3732],{"class":37,"line":1000},[35,3726,3465],{"class":93},[35,3728,59],{"class":86},[35,3730,3731],{"class":45}," outer",[35,3733,3734],{"class":2656}," # 同名 key， 合并时覆盖\n",[35,3736,3737,3739],{"class":37,"line":1025},[35,3738,3475],{"class":93},[35,3740,2678],{"class":86},[35,3742,3743,3745],{"class":37,"line":1256},[35,3744,2703],{"class":86},[35,3746,3484],{"class":45},[35,3748,3749,3751,3753],{"class":37,"line":164},[35,3750,2696],{"class":93},[35,3752,59],{"class":86},[35,3754,3755],{"class":2656}," # 数组在合并时，追加\n",[35,3757,3758,3760,3762,3764],{"class":37,"line":2918},[35,3759,2703],{"class":86},[35,3761,2706],{"class":93},[35,3763,59],{"class":86},[35,3765,3501],{"class":45},[35,3767,3768,3770,3772],{"class":37,"line":157},[35,3769,2716],{"class":93},[35,3771,59],{"class":86},[35,3773,3510],{"class":45},[35,3775,3776,3778,3780,3782],{"class":37,"line":2937},[35,3777,2703],{"class":86},[35,3779,2706],{"class":93},[35,3781,59],{"class":86},[35,3783,3501],{"class":45},[35,3785,3786,3788,3790],{"class":37,"line":864},[35,3787,2716],{"class":93},[35,3789,59],{"class":86},[35,3791,3638],{"class":45},[3409,3793,3794],{"id":3794},"语法说明",[25,3796,3798],{"className":2643,"code":3797,"language":2645,"meta":30,"style":30},"include:\n  # 1、可直接传入配置文件路径\n  - 'https:\u002F\u002Fcnb.cool\u002F\u003Cyour-repo-slug>\u002F-\u002Fblob\u002Fmain\u002Fxxx\u002Ftemplate.yml'\n  - 'template.yml'\n  # 2、可传入一个对象。\n  # path: 配置文件路径\n  # ignoreError：未读取到配置文件是否抛出错误。true 不抛出错误；false 抛出错误。默认为 false\n  - path: 'template1.yml'\n    ignoreError: true\n  # 3、可传入一个对象\n  # config: 传入 yaml 配置\n  - config:\n      main:\n        push:\n          - stages:\n              - name: echo\n                script: echo \"hello world\"\n",[32,3799,3800,3806,3811,3824,3834,3839,3844,3849,3865,3876,3881,3886,3895,3902,3909,3919,3930],{"__ignoreMap":30},[35,3801,3802,3804],{"class":37,"line":38},[35,3803,3401],{"class":93},[35,3805,2678],{"class":86},[35,3807,3808],{"class":37,"line":90},[35,3809,3810],{"class":2656},"  # 1、可直接传入配置文件路径\n",[35,3812,3813,3815,3818,3821],{"class":37,"line":112},[35,3814,3532],{"class":86},[35,3816,3817],{"class":86}," '",[35,3819,3820],{"class":45},"https:\u002F\u002Fcnb.cool\u002F\u003Cyour-repo-slug>\u002F-\u002Fblob\u002Fmain\u002Fxxx\u002Ftemplate.yml",[35,3822,3823],{"class":86},"'\n",[35,3825,3826,3828,3830,3832],{"class":37,"line":162},[35,3827,3532],{"class":86},[35,3829,3817],{"class":86},[35,3831,3414],{"class":45},[35,3833,3823],{"class":86},[35,3835,3836],{"class":37,"line":166},[35,3837,3838],{"class":2656},"  # 2、可传入一个对象。\n",[35,3840,3841],{"class":37,"line":170},[35,3842,3843],{"class":2656},"  # path: 配置文件路径\n",[35,3845,3846],{"class":37,"line":174},[35,3847,3848],{"class":2656},"  # ignoreError：未读取到配置文件是否抛出错误。true 不抛出错误；false 抛出错误。默认为 false\n",[35,3850,3851,3853,3856,3858,3860,3863],{"class":37,"line":178},[35,3852,3532],{"class":86},[35,3854,3855],{"class":93}," path",[35,3857,59],{"class":86},[35,3859,3817],{"class":86},[35,3861,3862],{"class":45},"template1.yml",[35,3864,3823],{"class":86},[35,3866,3867,3870,3872],{"class":37,"line":181},[35,3868,3869],{"class":93},"    ignoreError",[35,3871,59],{"class":86},[35,3873,3875],{"class":3874},"sbKd-"," true\n",[35,3877,3878],{"class":37,"line":185},[35,3879,3880],{"class":2656},"  # 3、可传入一个对象\n",[35,3882,3883],{"class":37,"line":1000},[35,3884,3885],{"class":2656},"  # config: 传入 yaml 配置\n",[35,3887,3888,3890,3893],{"class":37,"line":1025},[35,3889,3532],{"class":86},[35,3891,3892],{"class":93}," config",[35,3894,2678],{"class":86},[35,3896,3897,3900],{"class":37,"line":1256},[35,3898,3899],{"class":93},"      main",[35,3901,2678],{"class":86},[35,3903,3904,3907],{"class":37,"line":164},[35,3905,3906],{"class":93},"        push",[35,3908,2678],{"class":86},[35,3910,3911,3914,3917],{"class":37,"line":2918},[35,3912,3913],{"class":86},"          -",[35,3915,3916],{"class":93}," stages",[35,3918,2678],{"class":86},[35,3920,3921,3924,3926,3928],{"class":37,"line":157},[35,3922,3923],{"class":86},"              -",[35,3925,2706],{"class":93},[35,3927,59],{"class":86},[35,3929,3501],{"class":45},[35,3931,3932,3935,3937],{"class":37,"line":2937},[35,3933,3934],{"class":93},"                script",[35,3936,59],{"class":86},[35,3938,3939],{"class":45}," echo \"hello world\"\n",[3409,3941,3942],{"id":3942},"合并规则",[17,3944,3945],{},"不同文件的流水线配置合并规则：",[123,3947,3948,3951,3954,3957],{},[126,3949,3950],{},"数组(Array)和数组(Array)合并：子元素追加",[126,3952,3953],{},"对象(Map)和对象(Map)合并：同名 key 覆盖",[126,3955,3956],{},"数组(Array)和对象(Map)合并：仅保留数组",[126,3958,3959],{},"对象(Map)和数组(Array)合并：仅保留数组",[17,3961,3962,3963],{},"引用配置文件权限控制参考 ",[129,3964,3966],{"href":3965},"..\u002Fadvanced-usage\u002Ffile-reference","配置文件引用鉴权",[3968,3969,3970],"tip",{},[17,3971,3972],{},"合并后的流水线配置会展示在构建详情页，与密钥仓库内容保护的理念不符，include 无法引用密钥仓库文件。",[3968,3974,3975],{},[2746,3976,3977,3980,3983,3986,3989],{},[126,3978,3979],{},"本地的 .cnb.yml 会覆盖 include 中的配置，include 数组中后面的配置会覆盖前面的配置。",[126,3981,3982],{},"支持嵌套 include，include 的本地文件路径相对于项目根目录。",[126,3984,3985],{},"最多支持 include 50个配置文件。",[126,3987,3988],{},"不支持引用 submodule 中的文件。",[126,3990,3991],{},"不支持跨文件使用 YAML 锚点功能。",[3225,3993,3994],{"id":3994},"reference",[17,3996,3997,3998,4000,4001,4003,4004,4007],{},"YAML 不支持跨文件引用，",[32,3999,2026],{}," 通过扩展 YAML 自定义标签 ",[32,4002,3994],{}," 实现按属性路径引用变量值，可结合 ",[129,4005,3401],{"href":4006},"#include"," 跨文件复用配置。",[3968,4009,4010],{},[2746,4011,4012,4024],{},[126,4013,4014,4015,4017,4018,4020,4021,4023],{},"第一层同名变量会被覆盖，不会合并。本地的 ",[32,4016,2400],{}," 会覆盖 ",[32,4019,3401],{}," 中的变量，",[32,4022,3401],{}," 数组中后面的变量会覆盖前面的变量。",[126,4025,4026,4028],{},[32,4027,3994],{}," 支持嵌套引用，最多 10 层。",[3409,4030,4032],{"id":4031},"示例-reference-example","示例 {#reference-example}",[17,4034,4035],{},"a.yml",[25,4037,4039],{"className":2643,"code":4038,"language":2645,"meta":30,"style":30},".val1:\n  echo1: echo hello\n.val2:\n  friends:\n    - one:\n      name: tom\n      say: !reference [.val1, echo1]\n",[32,4040,4041,4048,4058,4065,4072,4081,4091],{"__ignoreMap":30},[35,4042,4043,4046],{"class":37,"line":38},[35,4044,4045],{"class":93},".val1",[35,4047,2678],{"class":86},[35,4049,4050,4053,4055],{"class":37,"line":90},[35,4051,4052],{"class":93},"  echo1",[35,4054,59],{"class":86},[35,4056,4057],{"class":45}," echo hello\n",[35,4059,4060,4063],{"class":37,"line":112},[35,4061,4062],{"class":93},".val2",[35,4064,2678],{"class":86},[35,4066,4067,4070],{"class":37,"line":162},[35,4068,4069],{"class":93},"  friends",[35,4071,2678],{"class":86},[35,4073,4074,4076,4079],{"class":37,"line":166},[35,4075,2672],{"class":86},[35,4077,4078],{"class":93}," one",[35,4080,2678],{"class":86},[35,4082,4083,4086,4088],{"class":37,"line":170},[35,4084,4085],{"class":93},"      name",[35,4087,59],{"class":86},[35,4089,4090],{"class":45}," tom\n",[35,4092,4093,4096,4098,4102,4104,4106,4109,4112],{"class":37,"line":174},[35,4094,4095],{"class":93},"      say",[35,4097,59],{"class":86},[35,4099,4101],{"class":4100},"smZ93"," !reference",[35,4103,99],{"class":86},[35,4105,4045],{"class":45},[35,4107,4108],{"class":86},",",[35,4110,4111],{"class":45}," echo1",[35,4113,109],{"class":86},[17,4115,2400],{},[25,4117,4119],{"className":2643,"code":4118,"language":2645,"meta":30,"style":30},"include:\n  - .\u002Fa.yml\n.val3:\n  size: 100\nmain:\n  push:\n    - stages:\n        - name: echo hello\n          script: !reference [.val2, friends, '0', say]\n        - name: echo size\n          env:\n            SIZE: !reference ['.val3', 'size']\n          script: echo my size ${SIZE}\n",[32,4120,4121,4127,4134,4141,4152,4158,4164,4172,4182,4215,4226,4233,4261],{"__ignoreMap":30},[35,4122,4123,4125],{"class":37,"line":38},[35,4124,3401],{"class":93},[35,4126,2678],{"class":86},[35,4128,4129,4131],{"class":37,"line":90},[35,4130,3532],{"class":86},[35,4132,4133],{"class":45}," .\u002Fa.yml\n",[35,4135,4136,4139],{"class":37,"line":112},[35,4137,4138],{"class":93},".val3",[35,4140,2678],{"class":86},[35,4142,4143,4146,4148],{"class":37,"line":162},[35,4144,4145],{"class":93},"  size",[35,4147,59],{"class":86},[35,4149,4151],{"class":4150},"sYRBq"," 100\n",[35,4153,4154,4156],{"class":37,"line":166},[35,4155,210],{"class":93},[35,4157,2678],{"class":86},[35,4159,4160,4162],{"class":37,"line":170},[35,4161,2662],{"class":93},[35,4163,2678],{"class":86},[35,4165,4166,4168,4170],{"class":37,"line":174},[35,4167,2672],{"class":86},[35,4169,3916],{"class":93},[35,4171,2678],{"class":86},[35,4173,4174,4176,4178,4180],{"class":37,"line":178},[35,4175,2703],{"class":86},[35,4177,2706],{"class":93},[35,4179,59],{"class":86},[35,4181,4057],{"class":45},[35,4183,4184,4186,4188,4190,4192,4194,4196,4199,4201,4203,4206,4208,4210,4213],{"class":37,"line":181},[35,4185,2716],{"class":93},[35,4187,59],{"class":86},[35,4189,4101],{"class":4100},[35,4191,99],{"class":86},[35,4193,4062],{"class":45},[35,4195,4108],{"class":86},[35,4197,4198],{"class":45}," friends",[35,4200,4108],{"class":86},[35,4202,3817],{"class":86},[35,4204,4205],{"class":45},"0",[35,4207,102],{"class":86},[35,4209,4108],{"class":86},[35,4211,4212],{"class":45}," say",[35,4214,109],{"class":86},[35,4216,4217,4219,4221,4223],{"class":37,"line":185},[35,4218,2703],{"class":86},[35,4220,2706],{"class":93},[35,4222,59],{"class":86},[35,4224,4225],{"class":45}," echo size\n",[35,4227,4228,4231],{"class":37,"line":1000},[35,4229,4230],{"class":93},"          env",[35,4232,2678],{"class":86},[35,4234,4235,4238,4240,4242,4244,4246,4248,4250,4252,4254,4257,4259],{"class":37,"line":1025},[35,4236,4237],{"class":93},"            SIZE",[35,4239,59],{"class":86},[35,4241,4101],{"class":4100},[35,4243,99],{"class":86},[35,4245,102],{"class":86},[35,4247,4138],{"class":45},[35,4249,102],{"class":86},[35,4251,4108],{"class":86},[35,4253,3817],{"class":86},[35,4255,4256],{"class":45},"size",[35,4258,102],{"class":86},[35,4260,109],{"class":86},[35,4262,4263,4265,4267],{"class":37,"line":1256},[35,4264,2716],{"class":93},[35,4266,59],{"class":86},[35,4268,4269],{"class":45}," echo my size ${SIZE}\n",[17,4271,4272],{},"解析后相当于：",[25,4274,4276],{"className":2643,"code":4275,"language":2645,"meta":30,"style":30},"main:\n  push:\n    - stages:\n        - name: echo hello\n          script: echo hello\n        - name: echo size\n          env:\n            SIZE: 100\n          script: echo my size ${SIZE}\n",[32,4277,4278,4284,4290,4298,4308,4316,4326,4332,4340],{"__ignoreMap":30},[35,4279,4280,4282],{"class":37,"line":38},[35,4281,210],{"class":93},[35,4283,2678],{"class":86},[35,4285,4286,4288],{"class":37,"line":90},[35,4287,2662],{"class":93},[35,4289,2678],{"class":86},[35,4291,4292,4294,4296],{"class":37,"line":112},[35,4293,2672],{"class":86},[35,4295,3916],{"class":93},[35,4297,2678],{"class":86},[35,4299,4300,4302,4304,4306],{"class":37,"line":162},[35,4301,2703],{"class":86},[35,4303,2706],{"class":93},[35,4305,59],{"class":86},[35,4307,4057],{"class":45},[35,4309,4310,4312,4314],{"class":37,"line":166},[35,4311,2716],{"class":93},[35,4313,59],{"class":86},[35,4315,4057],{"class":45},[35,4317,4318,4320,4322,4324],{"class":37,"line":170},[35,4319,2703],{"class":86},[35,4321,2706],{"class":93},[35,4323,59],{"class":86},[35,4325,4225],{"class":45},[35,4327,4328,4330],{"class":37,"line":174},[35,4329,4230],{"class":93},[35,4331,2678],{"class":86},[35,4333,4334,4336,4338],{"class":37,"line":178},[35,4335,4237],{"class":93},[35,4337,59],{"class":86},[35,4339,4151],{"class":4150},[35,4341,4342,4344,4346],{"class":37,"line":181},[35,4343,2716],{"class":93},[35,4345,59],{"class":86},[35,4347,4269],{"class":45},[3409,4349,4350],{"id":4350},"进阶示例",[17,4352,4353],{},"可以将流水线作为整体配置引用：",[25,4355,4357],{"className":2643,"code":4356,"language":2645,"meta":30,"style":30},".common-pipeline:\n  - stages:\n      - name: echo\n        script: echo hello\n\nmain:\n  push: !reference [.common-pipeline]\ntest:\n  push: !reference [.common-pipeline]\n",[32,4358,4359,4366,4374,4385,4394,4398,4404,4418,4425],{"__ignoreMap":30},[35,4360,4361,4364],{"class":37,"line":38},[35,4362,4363],{"class":93},".common-pipeline",[35,4365,2678],{"class":86},[35,4367,4368,4370,4372],{"class":37,"line":90},[35,4369,3532],{"class":86},[35,4371,3916],{"class":93},[35,4373,2678],{"class":86},[35,4375,4376,4379,4381,4383],{"class":37,"line":112},[35,4377,4378],{"class":86},"      -",[35,4380,2706],{"class":93},[35,4382,59],{"class":86},[35,4384,3501],{"class":45},[35,4386,4387,4390,4392],{"class":37,"line":162},[35,4388,4389],{"class":93},"        script",[35,4391,59],{"class":86},[35,4393,4057],{"class":45},[35,4395,4396],{"class":37,"line":166},[35,4397,2908],{"emptyLinePlaceholder":201},[35,4399,4400,4402],{"class":37,"line":170},[35,4401,210],{"class":93},[35,4403,2678],{"class":86},[35,4405,4406,4408,4410,4412,4414,4416],{"class":37,"line":174},[35,4407,2662],{"class":93},[35,4409,59],{"class":86},[35,4411,4101],{"class":4100},[35,4413,99],{"class":86},[35,4415,4363],{"class":45},[35,4417,109],{"class":86},[35,4419,4420,4423],{"class":37,"line":178},[35,4421,4422],{"class":93},"test",[35,4424,2678],{"class":86},[35,4426,4427,4429,4431,4433,4435,4437],{"class":37,"line":181},[35,4428,2662],{"class":93},[35,4430,59],{"class":86},[35,4432,4101],{"class":4100},[35,4434,99],{"class":86},[35,4436,4363],{"class":45},[35,4438,109],{"class":86},[17,4440,4272],{},[25,4442,4444],{"className":2643,"code":4443,"language":2645,"meta":30,"style":30},"main:\n  push:\n    - stages:\n        - name: echo\n          script: echo hello\ntest:\n  push:\n    - stages:\n        - name: echo\n          script: echo hello\n",[32,4445,4446,4452,4458,4466,4476,4484,4490,4496,4504,4514],{"__ignoreMap":30},[35,4447,4448,4450],{"class":37,"line":38},[35,4449,210],{"class":93},[35,4451,2678],{"class":86},[35,4453,4454,4456],{"class":37,"line":90},[35,4455,2662],{"class":93},[35,4457,2678],{"class":86},[35,4459,4460,4462,4464],{"class":37,"line":112},[35,4461,2672],{"class":86},[35,4463,3916],{"class":93},[35,4465,2678],{"class":86},[35,4467,4468,4470,4472,4474],{"class":37,"line":162},[35,4469,2703],{"class":86},[35,4471,2706],{"class":93},[35,4473,59],{"class":86},[35,4475,3501],{"class":45},[35,4477,4478,4480,4482],{"class":37,"line":166},[35,4479,2716],{"class":93},[35,4481,59],{"class":86},[35,4483,4057],{"class":45},[35,4485,4486,4488],{"class":37,"line":170},[35,4487,4422],{"class":93},[35,4489,2678],{"class":86},[35,4491,4492,4494],{"class":37,"line":174},[35,4493,2662],{"class":93},[35,4495,2678],{"class":86},[35,4497,4498,4500,4502],{"class":37,"line":178},[35,4499,2672],{"class":86},[35,4501,3916],{"class":93},[35,4503,2678],{"class":86},[35,4505,4506,4508,4510,4512],{"class":37,"line":181},[35,4507,2703],{"class":86},[35,4509,2706],{"class":93},[35,4511,59],{"class":86},[35,4513,3501],{"class":45},[35,4515,4516,4518,4520],{"class":37,"line":185},[35,4517,2716],{"class":93},[35,4519,59],{"class":86},[35,4521,4057],{"class":45},[3409,4523,4525],{"id":4524},"vscode-配置","VSCode 配置",[17,4527,4528,4529,4532,4533,4535,4536,4538,4539,4541],{},"安装 ",[32,4530,4531],{},"VSCode YAML"," 插件后，\n为了在 ",[32,4534,3228],{}," 编写带自定义标签 ",[32,4537,3994],{}," 的 ",[32,4540,2633],{}," 文件时不报错，需要如下配置：",[17,4543,4544],{},"setting.json",[25,4546,4550],{"className":4547,"code":4548,"language":4549,"meta":30,"style":30},"language-json shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","{\n  \"yaml.customTags\": [\"!reference sequence\"]\n}\n","json",[32,4551,4552,4556,4580],{"__ignoreMap":30},[35,4553,4554],{"class":37,"line":38},[35,4555,87],{"class":86},[35,4557,4558,4561,4564,4567,4569,4571,4573,4576,4578],{"class":37,"line":90},[35,4559,4560],{"class":86},"  \"",[35,4562,4563],{"class":4100},"yaml.customTags",[35,4565,4566],{"class":86},"\"",[35,4568,59],{"class":86},[35,4570,99],{"class":86},[35,4572,4566],{"class":86},[35,4574,4575],{"class":45},"!reference sequence",[35,4577,4566],{"class":86},[35,4579,109],{"class":86},[35,4581,4582],{"class":37,"line":112},[35,4583,4584],{"class":86},"}\n",[3968,4586,4587],{},[17,4588,4589,4590,4592,4593,4596,4597,4599,4600,4603,4604,3191],{},"为避免编写时 ",[32,4591,2633],{}," 插件根据 ",[32,4594,4595],{},"Schema"," 把第一层变量名当做分支名，\n有错误提示，",[32,4598,3994],{}," 所在的第一层变量名可用 ",[32,4601,4602],{},"."," 开头，如：",[32,4605,4606],{},".var",[142,4608,4609],{},"html pre.shiki code .sRlkE, html code.shiki .sRlkE{--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178}html pre.shiki code .sDfIl, html code.shiki .sDfIl{--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF}html pre.shiki code .sWuyu, html code.shiki .sWuyu{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sGFVr, html code.shiki .sGFVr{--shiki-light:#91B859;--shiki-default:#91B859;--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 .s8R28, html code.shiki .s8R28{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s52Pk, html code.shiki .s52Pk{--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B}html pre.shiki code .sZSNi, html code.shiki .sZSNi{--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8}html pre.shiki code .sbKd-, html code.shiki .sbKd-{--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC}html pre.shiki code .smZ93, html code.shiki .smZ93{--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA}html pre.shiki code .sYRBq, html code.shiki .sYRBq{--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C}",{"title":30,"searchDepth":90,"depth":90,"links":4611},[4612,4613,4614,4615,4616,4620],{"id":2616,"depth":90,"text":2616},{"id":2777,"depth":90,"text":2777},{"id":2794,"depth":90,"text":2794},{"id":3213,"depth":90,"text":3213},{"id":3223,"depth":90,"text":3223,"children":4617},[4618,4619],{"id":3227,"depth":112,"text":3228},{"id":3267,"depth":112,"text":3268},{"id":3296,"depth":90,"text":3296,"children":4621},[4622,4623,4624],{"id":3299,"depth":112,"text":3299},{"id":3401,"depth":112,"text":3401},{"id":3994,"depth":112,"text":3994},"云原生构建配置文件（.cnb.yml）用于定义仓库事件触发构建任务的条件和步骤，采用YAML格式，存放在仓库根目录下，支持通过PR进行变更。配置文件包括触发分支和事件、执行环境和任务脚本，支持锚点复用和跨文件配置导入，提供语法检查和自动补全功能。",{},{"title":2047,"description":4625},"V-xkqNTCWsKzW9jLQvTmjj8KemZbfwSnxqQzGmx0z48",[4630,4632],{"title":2043,"path":2044,"stem":2045,"description":4631,"children":-1},"“构建触发规则”详细说明了`云原生构建`如何根据不同事件（如`push`、`pull_request`、`tag_push`等）在特定分支上触发流水线，并解析`.cnb.yml`配置文件，同时支持`glob`模式匹配和多种代码版本的构建选择。",{"title":2051,"path":2052,"stem":2053,"description":4633,"children":-1},"该文本详细介绍了流水线语法，包括基本概念如 Pipeline、Stage 和 Job，以及它们的配置方法。文本解释了如何定义不同类型的任务，如脚本任务、内置任务和插件任务，并提供了环境变量、锁机制和条件执行的配置选项。通过示例代码，文本展示了在不同触发事件下如何配置和运行流水线。",1775504723318]