-
Notifications
You must be signed in to change notification settings - Fork 0
/
3462.html
5 lines (5 loc) · 466 KB
/
3462.html
1
2
3
4
5
<!DOCTYPE html><html lang="zh-CN" data-default-color-scheme="dark"><head><meta charset="UTF-8"><link rel="apple-touch-icon" sizes="76x76" href="https://blog.ganxb2.com/img/apple-touch-icon.png"><link rel="icon" href="https://blog.ganxb2.com/img/favicon.ico"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="baidu-site-verification" content="code-LnyrdJ1Q43"><meta name="msvalidate.01" content="D2BC56DEF4B3E10015EE9EAC3CF0522D"><meta name="360-site-verification" content="2a5ce9f7891be9e8950723bc1c536202"><meta name="bytedance-verification-code" content="0h1SMJazdxz456KZVWqe"><meta name="google-site-verification" content="1AamAHjeT3cCnSy4x-2PUZ6kanVu5GeIe5YQw4FCG8k"><style type="text/css">@keyframes sk-chase{100%{transform:rotate(360deg)}}@keyframes sk-chase-dot{100%,80%{transform:rotate(360deg)}}@keyframes sk-chase-dot-before{50%{transform:scale(.4)}0%,100%{transform:scale(1)}}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;transform:translate3d(0,-400%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;transform:translate3d(0,-400%,0)}}@keyframes waveAnimate{0%{width:0;height:0}40%{opacity:1}100%{width:200%;height:200%;opacity:0}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}.fade-animate{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-delay:1.2s;animation-delay:1.2s}.full-loading{background:linear-gradient(#3afce2,#dcb268);height:100%;position:fixed;left:0;right:0;bottom:0;top:0;width:100%;overflow:hidden;display:flex;justify-content:center;align-items:center;z-index:9999;color:var(--white);opacity:1}.go-logo{text-align:center;position:relative;z-index:10}.logo-description{padding:0 1rem}.waves{width:100%;height:100%;will-change:transform,opacity;position:absolute;animation:waveAnimate 3s linear 2;animation-delay:calc(.1s * var(--i))}.logo-h2{display:flex;flex-direction:column;text-transform:uppercase}.logo-h2 span:last-child{font-size:1.2rem}.load-person{display:inline-block;width:150px;height:150px}svg#freepik_stories-people-flying:not(.animated) .animable{opacity:0}svg#freepik_stories-people-flying.animated #freepik--Clouds--inject-4{animation:1s 1 forwards cubic-bezier(.36,-.01,.5,1.38) zoomIn,1.5s Infinite linear shake;animation-delay:0s,1s}svg#freepik_stories-people-flying.animated #freepik--character-1--inject-4{animation:1s 1 forwards cubic-bezier(.36,-.01,.5,1.38) slideLeft,1.5s Infinite linear floating;animation-delay:0s,1s}svg#freepik_stories-people-flying.animated #freepik--character-3--inject-4{animation:1s 1 forwards cubic-bezier(.36,-.01,.5,1.38) slideRight,1.5s Infinite linear floating;animation-delay:0s,1s}svg#freepik_stories-people-flying.animated #freepik--character-2--inject-4{animation:1s 1 forwards cubic-bezier(.36,-.01,.5,1.38) zoomIn,1.5s Infinite linear floating;animation-delay:0s,1s}@keyframes zoomIn{0%{opacity:0;transform:scale(.5)}100%{opacity:1;transform:scale(1)}}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}@keyframes slideLeft{0%{opacity:0;transform:translateX(-30px)}100%{opacity:1;transform:translateX(0)}}@keyframes floating{0%{opacity:1;transform:translateY(0)}50%{transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}@keyframes slideRight{0%{opacity:0;transform:translateX(30px)}100%{opacity:1;transform:translateX(0)}}.animator-hidden{display:none}</style><script>!function(){var e=document.createElement("script");e.src="https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?46be35bc02316217a6570b679bbcf1a0e60eed4089580108e3856cee2a992e2b30632485602430134f60bc55ca391050b680e2741bf7233a8f1da9902314a3fa",e.id="ttzz";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}(window)</script><script>!function(){var t=document.createElement("script"),e=window.location.protocol.split(":")[0];t.src="https"===e?"https://zz.bdstatic.com/linksubmit/push.js":"http://push.zhanzhang.baidu.com/push.js";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)}()</script><script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?d390435f6cdcb18dc9d6be2d8766c560";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script><meta name="referrer" content="no-referrer"><title>如何使用vue3+vite+typescript+pinia+uni-ui+pnpm从0到1创建uni-app多端小程序APP工程化项目 | 廿壴博客 - 小波个人分享圈子</title><meta name="theme-color" content="#fff"><meta name="author" content="chopin gump"><meta name="keywords" content="编程,前端,小波前端分享,vite,uni-ui,uni-app,vue3,typescript,pinia,pnpm,uni-app多端小程序APP,vue3+vite+typescript+pinia+uni-ui,前端工程化"><meta name="description" content="🙂前言一方面是为了把 vue3+typescript+pinia+pnpm+vite+uni-app+uni-ui 玩一玩,也为和前面用 taro3+vue3+tsx+pnpm+pinia做的小程序做个思想碰撞,因为 uni-app+vue3+typescript 用的 template 的写法思路来开发,而 taro3+vue3+tsx 用的 react 的 hooks 思想,看看两个思路"><meta property="og:type" content="article"><meta property="og:title" content="如何使用vue3+vite+typescript+pinia+uni-ui+pnpm从0到1创建uni-app多端小程序APP工程化项目"><meta property="og:url" content="https://blog.ganxb2.com/3462.html"><meta property="og:site_name" content="廿壴博客 - 小波个人分享圈子"><meta property="og:description" content="🙂前言一方面是为了把 vue3+typescript+pinia+pnpm+vite+uni-app+uni-ui 玩一玩,也为和前面用 taro3+vue3+tsx+pnpm+pinia做的小程序做个思想碰撞,因为 uni-app+vue3+typescript 用的 template 的写法思路来开发,而 taro3+vue3+tsx 用的 react 的 hooks 思想,看看两个思路"><meta property="og:locale" content="zh_CN"><meta property="og:image" content="https://i0.hdslb.com/bfs/album/641c7d907100fd94dfa83e37404626ea96315398.jpg@1e_1c.webp"><meta property="article:published_time" content="2023-04-05T18:32:35.000Z"><meta property="article:modified_time" content="2024-08-10T05:41:25.900Z"><meta property="article:author" content="chopin gump"><meta property="article:tag" content="前端"><meta property="article:tag" content="编程"><meta property="article:tag" content="typescript"><meta property="article:tag" content="vue3"><meta property="article:tag" content="uni-app"><meta property="article:tag" content="vite"><meta property="article:tag" content="uni-ui"><meta property="article:tag" content="pinia"><meta property="article:tag" content="pnpm"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:image" content="https://i0.hdslb.com/bfs/album/641c7d907100fd94dfa83e37404626ea96315398.jpg@1e_1c.webp"><link rel="stylesheet" href="https://lib.baomitu.com/twitter-bootstrap/4.6.1/css/bootstrap.min.css"><link rel="stylesheet" href="https://npm.elemecdn.com/aplayer@1.10.1/dist/APlayer.min.css"><link rel="stylesheet" href="https://lib.baomitu.com/github-markdown-css/4.0.0/github-markdown.min.css"><link rel="stylesheet" href="https://lib.baomitu.com/hint.css/2.7.0/hint.min.css"><link rel="stylesheet" href="https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.css"><link rel="stylesheet" href="https://lib.baomitu.com/social-share.js/1.0.16/css/share.min.css"><link rel="stylesheet" href="https://at.alicdn.com/t/font_1749284_hj8rtnfg7um.css"><link rel="stylesheet" href="https://at.alicdn.com/t/font_1736178_lbnruvf0jn.css"><link rel="stylesheet" href="/css/main.css"><link id="highlight-css" rel="stylesheet" href="/css/highlight.css"><link id="highlight-css-dark" rel="stylesheet" href="/css/highlight-dark.css"><link rel="stylesheet" href="/css/custom.css"><script id="fluid-configs">var Fluid=window.Fluid||{};Fluid.ctx=Object.assign({},Fluid.ctx);var CONFIG={hostname:"blog.ganxb2.com",root:"/",version:"1.9.0",typing:{enable:!0,typeSpeed:120,cursorChar:"_",loop:!1,scope:[]},anchorjs:{enable:!0,element:"h1,h2,h3",placement:"left",visible:"hover",icon:"❡"},progressbar:{enable:!0,height_px:3,color:"#29d",options:{showSpinner:!1,trickleSpeed:100,template:"<div class='custom-loader loader1832' role='bar'></div>"}},code_language:{enable:!0,default:"TEXT"},copy_btn:!0,image_caption:{enable:!0},image_zoom:{enable:!0,img_url_replace:["",""]},toc:{enable:!0,placement:"right",headingSelector:"h1,h2,h3,h4,h5,h6",collapseDepth:0},lazyload:{enable:!0,loading_img:"data:image/jpeg;base64,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",onlypost:!1,offset_factor:1},web_analytics:{enable:!0,follow_dnt:!0,baidu:null,google:null,gtag:null,tencent:{sid:null,cid:null},woyaola:21372453,cnzz:null,leancloud:{app_id:"nDQ36p8HTARqWHDzto29WBIy-9Nh9j0Va",app_key:"aYGQAVWhkMJYM12vcgeRFian",server_url:"https://server.ganxb2.com",path:"window.location.pathname",ignore_local:!0}},search_path:"/local-search.xml"};if(CONFIG.web_analytics.follow_dnt){var dntVal=navigator.doNotTrack||window.doNotTrack||navigator.msDoNotTrack;Fluid.ctx.dnt=dntVal&&(dntVal.startsWith("1")||dntVal.startsWith("yes")||dntVal.startsWith("on"))}</script><script src="https://blog.ganxb2.com/js/utils.js"></script><script src="https://blog.ganxb2.com/js/color-schema.js"></script><meta name="generator" content="Hexo 6.3.0"><link rel="alternate" href="/rss/atom.xml" title="廿壴博客 - 小波个人分享圈子" type="application/atom+xml">
</head><body class="small-font"><header><div class="header-inner" style="height:60vh"><nav id="navbar" class="navbar fixed-top navbar-expand-lg navbar-dark scrolling-navbar"><div class="container"><h1 class="blog-title"><a class="navbar-brand is-update-src" href="/"><strong>廿壴博客</strong></a></h1><div class="docSearch-button-box"><div class="btn btn-outline-primary btn-sm docSearch-button" aria-label="搜索文章"><span class="docSearch-button-container" data-toggle="modal" data-target="#modalSearch" aria-label="Search"><svg width="16" height="16" class="docSearch-search-icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg> <span class="docSearch-button-placeholder">搜索文章</span></span><div class="btn-group docSearch-hots-box"><span class="docSearch-button-hots"><i class="iconfont icon-codeforces"></i>热搜榜</span><div class="docSearch-hots-menu dropdown-menu dropdown-menu-right dropdown-menu-lg-right"><nav class="nav nav-pills" id="pills-tab"><a class="nav-link active" href="javascript:void(0);" id="pills-first-tab" data-toggle="pill" data-target="#pills-first" role="tab" aria-controls="pills-first" aria-selected="true">热门标签</a> <a class="nav-link" href="javascript:void(0);" id="pills-second-tab" data-toggle="pill" data-target="#pills-second" role="tab" aria-controls="pills-second" aria-selected="false">热门搜索</a> <a class="nav-link" href="javascript:void(0);" id="pills-third-tab" data-toggle="pill" data-target="#pills-third" role="tab" aria-controls="pills-third" aria-selected="false">全网热点</a></nav><div class="tab-content" id="pills-tabContent"><div class="tab-pane fade show active" id="pills-first" role="tabpanel" aria-labelledby="pills-first-tab"><a class="hot-search-item" href="https://blog.ganxb2.com/tags/github/"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component1"><span class="hot-search-text">1</span></div></div><span class="hot-search-post">github</span> </a><a class="hot-search-item" href="https://blog.ganxb2.com/tags/hexo/"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component2"><span class="hot-search-text">2</span></div></div><span class="hot-search-post">hexo</span> </a><a class="hot-search-item" href="https://blog.ganxb2.com/tags/waline/"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component3"><span class="hot-search-text">3</span></div></div><span class="hot-search-post">waline</span> </a><a class="hot-search-item" href="https://blog.ganxb2.com/tags/编程开发应用软件/"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component-more"><span class="hot-search-text">4</span></div></div><span class="hot-search-post">编程开发应用软件</span> </a><a class="hot-search-item" href="https://blog.ganxb2.com/tags/nodejs/"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component-more"><span class="hot-search-text">5</span></div></div><span class="hot-search-post">nodejs</span></a></div><div class="tab-pane fade" id="pills-second" role="tabpanel" aria-labelledby="pills-second-tab"><a class="hot-search-item" href="https://blog.ganxb2.com/23216.html"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component1"><span class="hot-search-text">1</span></div></div><span class="hot-search-post">谷歌站长平台无法登录,注册谷歌帐号时报错“此电话号码无法用于进行验证”</span> </a><a class="hot-search-item" href="https://blog.ganxb2.com/50860.html"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component2"><span class="hot-search-text">2</span></div></div><span class="hot-search-post">利用jsdelivr给github图床和npm组件库免费cdn加速</span> </a><a class="hot-search-item" href="https://blog.ganxb2.com/11388.html"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component3"><span class="hot-search-text">3</span></div></div><span class="hot-search-post">hexo个人博客优化实现vuePress插件external-link-icon(超链接末尾小图标)</span> </a><a class="hot-search-item" href="https://blog.ganxb2.com/54435.html"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component-more"><span class="hot-search-text">4</span></div></div><span class="hot-search-post">linkinpark《变形金刚3》主题曲现场版</span> </a><a class="hot-search-item" href="https://blog.ganxb2.com/40904.html"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component-more"><span class="hot-search-text">5</span></div></div><span class="hot-search-post">小波音乐分享:五月天追梦3DNA演唱会</span></a></div><div class="tab-pane fade" id="pills-third" role="tabpanel" aria-labelledby="pills-third-tab"><a class="hot-search-item" href="https://blog.ganxb2.com/5897.html"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component1"><span class="hot-search-text">1</span></div></div><span class="hot-search-post">浏览器控制台报错cannot read properties of undefined xl-content js</span> </a><a class="hot-search-item" href="https://blog.ganxb2.com/55330.html"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component2"><span class="hot-search-text">2</span></div></div><span class="hot-search-post">好乐队的主唱为啥都这么挺不住啊?for「Low Roar」</span> </a><a class="hot-search-item" href="https://blog.ganxb2.com/19772.html"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component3"><span class="hot-search-text">3</span></div></div><span class="hot-search-post">behance封禁中国区帐号无法登录后怎么转移原帐号收藏的情绪板和关注</span> </a><a class="hot-search-item" href="https://blog.ganxb2.com/21349.html"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component-more"><span class="hot-search-text">4</span></div></div><span class="hot-search-post">小波壁纸分享:《来自深渊第二季烈日的黄金乡》4k壁纸</span> </a><a class="hot-search-item" href="https://blog.ganxb2.com/6180.html"><div class="hot-search-order-box"><div class="hot-search-order hot-search-order-component-more"><span class="hot-search-text">5</span></div></div><span class="hot-search-post">小波设计赏析:「守望先锋2」归来网页设计</span></a></div></div></div></div></div></div><button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><div class="animated-icon"><span></span><span></span><span></span></div></button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav ml-auto text-center"><li class="nav-item hint--bottom-left" aria-label="首页"><a class="nav-link is-update-src" href="/"><i class="iconfont icon-home-fill"></i> 廿壴</a></li><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" target="_self" href="javascript:;" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="iconfont icon-th-large"></i> 石之门</a><div class="dropdown-menu" aria-labelledby="navbarDropdown"><a class="dropdown-item is-update-src" href="/words/"><i class="iconfont icon-speakernotes"></i> 短句 - 藏字阁 </a><a class="dropdown-item is-update-src" href="/categories/"><i class="iconfont icon-category-fill"></i> 分类 - 新世界 </a><a class="dropdown-item is-update-src" href="/archives/"><i class="iconfont icon-archive-fill"></i> 归档 - 旧时光 </a><a class="dropdown-item is-update-src" href="/tags/"><i class="iconfont icon-tags-fill"></i> 标签 - 星辰</a></div></li><li class="nav-item hint--bottom-left" aria-label="动态"><a class="nav-link is-update-src" href="/speak/"><i class="iconfont icon-speakernotes"></i> 龙门阵</a></li><li class="nav-item hint--bottom-left" aria-label="关于"><a class="nav-link is-update-src" href="/about/"><i class="iconfont icon-addrcard"></i> 羁绊</a></li><li class="nav-item hint--bottom-left" aria-label="友链"><a class="nav-link is-update-src" href="/links/"><i class="iconfont icon-link-fill"></i> 友人帐</a></li><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" target="_self" href="javascript:;" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="iconfont icon-exp-fill"></i> 实验室</a><div class="dropdown-menu" aria-labelledby="navbarDropdown"><a class="dropdown-item is-update-src" href="/feed/">MY-ADMIN </a><a class="dropdown-item is-update-src" href="/feed/">MY-BOOKS</a></div></li><li class="nav-item hint--bottom-left" aria-label="赞助"><a class="nav-link is-update-src" href="/feed/"><i class="iconfont icon-love"></i> 投喂</a></li><li class="nav-item hint--bottom-left" id="search-btn" aria-label="📡搜索文章"><a class="nav-link" target="_self" href="javascript:;" data-toggle="modal" data-target="#modalSearch" aria-label="Search" role="button"> <i class="iconfont icon-search"></i> </a></li><li class="nav-item hint--bottom-left" id="color-toggle-btn" aria-label="🔦切换昼/夜模式"><a class="nav-link" target="_self" href="javascript:;" aria-label="Color Toggle" role="button"> <i class="iconfont icon-dark" id="color-toggle-icon"></i> </a></li><li class="nav-item hint--bottom-left" id="kaiwang-btn" aria-label="🚇开往"><a class="nav-link" target="_blank" href="https://www.travellings.cn/go.html" rel="nofollow noopener noreferrer external" title="开往 - 随机跳转到另一个加入开往的网页" aria-label="another blog" role="button">🚇</a></li></ul></div></div></nav><div class="sub-post-title"><span></span></div><div class="scroll-process"><div id="percentageCounter"></div></div><div id="banner" class="banner-bg-animate banner post-banner" style="background-image:url(https://ts1.cn.mm.bing.net/th/id/R-C.5cfaa20f52a74f30793012d37f07f147?rik=KnAtmnMXqrxq%2fw&riu=http%3a%2f%2f5b0988e595225.cdn.sohucs.com%2fimages%2f20190314%2ffad0db36b2fc48ecaac132665080db44.jpeg&ehk=COujfM98BFIyLRTuwELQ6Ev8O975DG2TUbExW%2bHE%2bt4%3d&risl=&pid=ImgRaw&r=0)" false><div class="full-bg-img"><div class="mask flex-center" style="background-color:rgba(0,0,0,.3)"><div class="banner-text text-center"><h2 class="h2 false fade-in-up fadeInUp-animate"></h2></div></div></div></div></div></header><main><div class="container-fluid nopadding-x post-container"><meting-js server="netease" type="song" id="1377119876" class="fade-in-up fadeInUp-animate"></meting-js><div class="row max-screen animate__fadeInLeft animate__animated animate-delay" id="board"><div class="cat-copyright-tip">原创</div><div class="side-col d-none d-lg-block col-lg-2"><aside class="sidebar category-bar" style="margin-left:-2rem"><div class="category-list"><div class="category row nomargin-x"><p class="category-name"><i class="iconfont icon-articles"></i> 相关文章</p><div class="category-collapse"><div class="category-post-list"><a href="./51438.html" title="前端架构师之团队协作:如何约定一致性的git提交规范" class="list-group-item list-group-item-action" rel="bookmark"><span class="category-img"><img src="https://article.biliimg.com/bfs/article/8d38c42c9ca7fd9bfc883de2da281ba93dd1ecdb.jpg@1e_1c.webp" srcset="data:image/jpeg;base64,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" lazyload alt="前端架构师之团队协作:如何约定一致性的git提交规范"></span><span class="category-title-date"><span class="category-post">前端架构师之团队协作:如何约定一致性的git提交规范</span> <time>2023-08-09</time> </span></a><a href="./11442.html" title="hexo个人博客优化魔改非插件实现增加说说页面" class="list-group-item list-group-item-action" rel="bookmark"><span class="category-img"><img src="https://i0.hdslb.com/bfs/album/48ee9359da6ab8cfc7d926ec52accc58717b32fa.jpg@1e_1c.webp" srcset="data:image/jpeg;base64,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" lazyload alt="hexo个人博客优化魔改非插件实现增加说说页面"></span><span class="category-title-date"><span class="category-post">hexo个人博客优化魔改非插件实现增加说说页面</span> <time>2022-10-26</time> </span></a><a href="./30364.html" title="seo优化之浅析用文章结构的思想来诠释html5在商务网站代码框架设计的语义化" class="list-group-item list-group-item-action" rel="bookmark"><span class="category-img"><img src="https://i0.hdslb.com/bfs/album/ecc7dfc94ff8f76dd1bd3213de326e48175eb5e6.jpg@1e_1c.webp" srcset="data:image/jpeg;base64,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" lazyload alt="seo优化之浅析用文章结构的思想来诠释html5在商务网站代码框架设计的语义化"></span><span class="category-title-date"><span class="category-post">seo优化之浅析用文章结构的思想来诠释html5在商务网站代码框架设计的语义化</span> <time>2012-07-09</time> </span></a><a href="./35139.html" title="hexo个人博客优化魔改之评论插件waline邮件通知模版" class="list-group-item list-group-item-action" rel="bookmark"><span class="category-img"><img src="https://i0.hdslb.com/bfs/album/707b57c7d6f636dd4d017a1da7f7c3445a6856c5.jpg@1e_1c.webp" srcset="data:image/jpeg;base64,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" lazyload alt="hexo个人博客优化魔改之评论插件waline邮件通知模版"></span><span class="category-title-date"><span class="category-post">hexo个人博客优化魔改之评论插件waline邮件通知模版</span> <time>2022-10-08</time> </span></a><a href="./33974.html" title="前端chm参考手册汇总下载(javascript,html5,css3,jquery)" class="list-group-item list-group-item-action" rel="bookmark"><span class="category-img"><img src="https://i0.hdslb.com/bfs/album/7f9143a45e2535ec50fa107ebbc40b0c3dc11cf3.jpg@1e_1c.webp" srcset="data:image/jpeg;base64,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" lazyload alt="前端chm参考手册汇总下载(javascript,html5,css3,jquery)"></span><span class="category-title-date"><span class="category-post">前端chm参考手册汇总下载(javascript,html5,css3,jquery)</span> <time>2011-10-25</time></span></a></div></div></div></div><div class="animate__fadeInUpBig animate__animated animate-delayThird mt-3"><a class="sponsors-aside-text" href="./feed/">Sponsors</a><div class="sponsor-container special"><a href="./feed/" class="sponsor-item action">成为赞助商</a></div></div></aside></div><div class="col-lg-8 nopadding-x-md"><div class="container nopadding-x-md" id="board-ctn"><article class="post-content mx-auto fadeInDown fadeInUp-animate"><div class="markdown-body"><h2 class="post-h2">如何使用vue3+vite+typescript+pinia+uni-ui+pnpm从0到1创建uni-app多端小程序APP工程化项目</h2><div class="fade-in-up fadeInUp-animate"></div><div class="meta-top-box fade-in-up fadeInUp-animate"><span class="post-meta mr-2 hint--bottom" aria-label="♾️文章字数"><i class="iconfont icon-chart"></i> 35k 字 </span><span class="post-meta mr-2 hint--bottom" aria-label="⌛阅读时间"><i class="iconfont icon-clock-fill"></i> 291 分钟 </span><span id="leancloud-page-views-container" class="post-meta hint--bottom mr-2" style="display:none" aria-label="🔢访问量"><i class="iconfont icon-eye" aria-hidden="true"></i> <span id="leancloud-page-views"></span>℃ </span><span class="post-meta mr-2 hint--bottom" aria-label="🔖文章分类"><i class="iconfont icon-category"></i> <span class="category-chains"><span class="category-chain"><a rel="category" href="./categories/%E7%BC%96%E7%A8%8B/" class="category-chain-item">编程</a> <span>/</span> <a rel="category" href="./categories/%E7%BC%96%E7%A8%8B/%E5%89%8D%E7%AB%AF/" class="category-chain-item">前端</a> </span></span></span><span class="post-meta hint--bottom" aria-label="📆创作发布日期"><i class="iconfont icon-date" aria-hidden="true"></i> <time datetime="2023-04-05 18:32" pubdate>写作于 2023年4月5日 晚上</time></span></div><br><h3 id="🙂前言"><a href="#🙂前言" class="headerlink" title="🙂前言"></a>🙂前言</h3><p>一方面是为了把 vue3+typescript+pinia+pnpm+vite+uni-app+uni-ui 玩一玩,也为和前面用 <a href="https://blog.ganxb2.com/48056.html">taro3+vue3+tsx+pnpm+pinia</a>做的小程序做个思想碰撞,因为 uni-app+vue3+typescript 用的 template 的写法思路来开发,而 taro3+vue3+tsx 用的 react 的 hooks 思想,看看两个思路的开发实践差异点和效率等方面具体的情况能碰撞出怎样的火花。</p><br><h3 id="😍uni-app-vue3-vite-typescript-pinia-uni-ui-微信小程序APP工程模版实体截图"><a href="#😍uni-app-vue3-vite-typescript-pinia-uni-ui-微信小程序APP工程模版实体截图" class="headerlink" title="😍uni-app(vue3+vite+typescript+pinia+uni-ui)微信小程序APP工程模版实体截图"></a>😍uni-app(vue3+vite+typescript+pinia+uni-ui)微信小程序APP工程模版实体截图</h3><p><img src="https://article.biliimg.com/bfs/article/c9b2a733abb357ca9370bf51fe2985fd3ae8c6ba.jpg@1e_1c.webp" srcset="data:image/jpeg;base64,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" lazyload alt="uni-app(vue3+vite+typescript+pinia+uni-ui)微信小程序APP工程模版实体截图"></p><p><a href="https://gitee.com/ganxb2/uniapp_vue3_vite_pinia" target="_blank" rel="noopener external nofollow noreferrer">gitee仓库传送门</a></p><p class="note note-info">工程项目暂时定义为测试阶段的初始模版,所以里面有部分小波自测冗余代码,拿去用的话需要自己看看手动删除,后续小波有时间会更新版本清理。</p><br><h3 id="😦目标功能"><a href="#😦目标功能" class="headerlink" title="😦目标功能"></a>😦目标功能</h3><h4 id="done"><a href="#done" class="headerlink" title="done:"></a>done:</h4><ol><li>集成 vue3、typescript、pinia、vite、uni-ui、nodejs-koa、pnpm,使用 vue3 模版渲染思路开发</li><li>多人协作 eslint、prettier 代码格式校验规范, vsocde 配置</li><li>jest 单元测试</li><li>pinia 全局状态管理</li><li>小程序分包配置</li><li>小程序自定义顶部导航</li><li>nodejs-koa 接口服务</li><li>多环境 api 接口判断</li><li>页面:首页、点餐</li></ol><h4 id="todo"><a href="#todo" class="headerlink" title="todo:"></a>todo:</h4><ul><li>git提交 husky 校验</li><li>git提交 commit 校验</li><li>改成 tsx 完善整个系统流程</li><li>生产环境去除 console</li><li>nodejs-koa 提取到 vercel 做成在线 api 服务</li><li>打包 app 流程</li><li>vite 深入学习实践</li></ul><br><h3 id="🧐主要技术栈"><a href="#🧐主要技术栈" class="headerlink" title="🧐主要技术栈"></a>🧐主要技术栈</h3><ul><li>vue3</li><li>typescript</li><li>uni-ui</li><li>pinia</li><li>vite</li><li>pnpm</li><li>koa</li><li>nodejs</li><li>sass</li><li>jest</li><li>eslint+prettier</li><li>husky</li><li>commit</li></ul><br><h3 id="🙂总纲"><a href="#🙂总纲" class="headerlink" title="🙂总纲"></a>🙂总纲</h3><ol><li>安装 vscode 插件 vue volar 全家桶、eslint、prettier、sass,禁用或者直接删除 vetur (这个插件是 for vue2),安装微信开发工具,HBuildX</li><li>安装 pnpm 和 uni-app 脚手架并初始项目</li><li>卸载不需要多余依赖库</li><li>安装 eslint + preitter 相关依赖库,创建相关配置文件 <strong>.eslintrc.js、.prettierrc.js</strong>, vscode 配置: <strong>.vscode/settings.json</strong> ,配置 <strong>package.json</strong> 包检测命令,配置别名</li><li>安装 pinia 并配置</li><li>安装 sass</li><li>封装 uni.request 请求</li><li>利用 nodejs - koa 配置 mock 数据服务器</li><li>配置 jest 单元测试</li><li>安装 uni-ui 依赖库</li><li>配置小程序渲染</li><li>配置多环境 api 接口</li><li>从0到1架构uni-app多端工程化项目遇见的问题</li></ol><br><h3 id="🤔搭建uni-app微信小程序APP工程化项目步骤"><a href="#🤔搭建uni-app微信小程序APP工程化项目步骤" class="headerlink" title="🤔搭建uni-app微信小程序APP工程化项目步骤"></a>🤔搭建uni-app微信小程序APP工程化项目步骤</h3><h4 id="第一步:安装-vscode-插件、微信开发工具和-HBuildX"><a href="#第一步:安装-vscode-插件、微信开发工具和-HBuildX" class="headerlink" title="第一步:安装 vscode 插件、微信开发工具和 HBuildX"></a>第一步:安装 vscode 插件、微信开发工具和 HBuildX</h4><ol><li><h5 id="vscode-插件"><a href="#vscode-插件" class="headerlink" title="vscode 插件"></a>vscode 插件</h5><ul><li><p><strong>eslint</strong></p></li><li><p><strong>prettier</strong></p></li><li><p><strong>volar</strong> (ts版本也一并安装)</p></li><li><p><strong>sass</strong></p></li></ul><p>以上的插件可以在 <strong>vue volar extension pack</strong> 中直接全装</p><blockquote><p><span class="label label-info">提示</span></p><p>不需要开发 vue2 则删除 vetur 插件,需要就先禁用,vue3 中会导致代码报错</p></blockquote></li><li><h5 id="微信开发工具"><a href="#微信开发工具" class="headerlink" title="微信开发工具"></a><a href="https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html" target="_blank" rel="noopener external nofollow noreferrer">微信开发工具</a></h5><p><img src="https://res.wx.qq.com/wxdoc/dist/assets/img/addproject.87088c43.png" srcset="data:image/jpeg;base64,UklGRmQZAABXRUJQVlA4IFgZAAAQjwCdASowAuoBPjEYiEQiIYjMMBABglnbuF2sRsPn9j/IDv0qW9A/o36zf23/o/7P5gai/M/6h+W/3H/4nyG6wucPpA+ETxn8y/uf9b/a/+8f///r/ff+y/3r2K/o7+oe4F+lv+K/vX91/13+n///zAeo79xPUB/QP6r/sP9j+9vyv/4L/i/1X3O/sP/wP8d/qvkA/jn9J+/TvJ/QD/lH93/6P5//Lp/sf/F/uP3/+jX9nv/D/pP3/+hf+a/3D/lfn/8gHoAegB6e/UD+y9pv9//Lb2d6ufrZyDfNf4rzR/jv2P/M/3D9yPXfvZ4AX5H/MP8j+Xn5Z8aCAD9B/q3+l8I7VB73ewB/Ov7J/suMw8o9gL+cf2H/q+np/w/5D8tPcH+f/4T/y/4v4DP5l/Yv+n/efa09f37qexn+yP//CLyW85UXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqotZS8+wjCbzlRcQ1uaHZgqouIaurZDgdWIeLY8vUWE7mh2YKqLiGTA/q1I2++2c8/u8dqh/gvkJJAybn+NuCHb+M4Yw/RbPP+7dXRkz7O3+bxj941kvcUVHylxcFOs9kcAmD/5kge5T3NQVUXENbmhx6qGQ0CEQc+Ll5xZ8k9oGzWOHaZvFY4EWp7Ieh0g1TPlfLGrg6t1UUQEmTI1DhFHXrkSPcCK4uok9NuISGpWK0uQ1Le1uaHZgqouEwJ21dbiW0APG5yZmzpm4N9jJbJu0/bQTmmTR/VOZeCKYIzicpWPP6K4zIMkuTowHKdcUGZ29sAqrkR/ecqLiGtzL5HbxXzcletEFDhHZTMNtcUX23EX6jQUGwYaZsyKfZANK4Xhu+DIQRSOiyyXnNClsy6Bx0aQWwBq6E5yKO/C95imXwtqo3Krs56Nf9kq2vyEanI2Q/iqWjg9TENbmg982wWUui9Eod7iIwg1lpD+SPE84oaUnV2ud3jSBDEytUKlM/cs+hzBbWgUTCj9TvegY0e1e75oxhqyKG6yHfTwLdu4IDcfMGV4wIUNwKn3D6OUmLiGtzLst0Cvp7gm2NH+3kDZBUMwSEVXn4ufw9CIXCtA3nKi4h08qLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKlAAP7/5bsv/nd0nlun8sAAAAAAAAAAAAAAAAAABJeg1/E195Mtr5bIH6ExACCpKqLvRrSZk3bzbV1yXU3sdZSwvnQKciS/+6yNP/BtSLt8g6c5w5B3TQXzVExNXwpHK6vvTesJhnWPnyt4x2TR22jLPj6P2L2cwZBAoSQl5BzyjYCIUSVIFWds3cAsI///Cv1PiooTBY/IpxIAj+nUHXZhfbNG5grn1Eh7uqfg9EHKO2YwWgDkAXZaIOkmvxJOszAGBHNCuv9l94rWTSLStSjNgbfbX8abgtEKWJvmvqhA4QyVlCMXRx02wS4sjhhdhG9xoYuYp7DiG8pP+YBl9pBYKZa4AQXodsIM358jgiR+8QY92J6QIu/icmakszRw/z7C38skMSkaEUvsmld8YT/t1d3ZTf5NH3GWV6bSDz7vq3Sj0uBVgcOykhqx5QN+O02eudExbLSNQPJbAAnSOATyoazahlSOdxsGNUzWmlDY+Q3jw1PeyZjEvaIUZ0wKHtpxw+LYYv6ymEfucU2oZlTaNy1YXiFYrod3liCfNJr3qzRo0pQ4md4qbKbYUl7jSpp/mDAvr6SJGw2JBcayH1X2gQsvjF/0JR20ORrgbhNJvP4FHPVJBmJj6YaI+X8RAcjoK/xaTycOW6UXdiXgBfjNrGn9B+QX8fwTZqmwiFfhQCcLkWITwGQVH1HDoUiFWE8S5hZVsXaPtO84hzoIHdraaqrngga00fcdT1b+2ENOdl/OeEyG3jzgcN+5cLnibMwVMTQSo5Xe6W3vGy1IFUtv0D20UGNHiGyBJJFx6Yp2qefbSXzueA5nWcuD2UfO+uqyAWX1fXEN+6niv8b1S4CXAXWat+SYIVbB6JN7KlZsVTvR0t+XwanqnrssD3A7C7EnVlP2tPLgqrlnZhG4GflSx0O6PiDTANLsbukD0BP7IDtilpwVBgw3kCCk0J0XnTVjKZgjJWt77KUgC9u4f6u4OkDgj/2nzY1E59WlEqdjHkJgwFqv42opRCbCc2hpwHxQXN6b/lzXFOSk7+mNc7d2ctr7DQIZIR3ROM3UwZmpK/a3kqx6jeTUn8r6VP+719iT5KLqtAYKaPuO/NADerP48Ycvnq/mnon4t2uQfWXIBjPGCdzaJAEv6AmqprJ6oR+O4n9DEbqJyB3wXNzNVuXwd/ZPqRS0coi6Avs7h6dvmqJ/GG/q2B8kLyX9QQTPcLL1mEdd3DmnmtA14gP8QDBuaRu4NdpfI/sVa20p0goUl0cDHk7UO1DbpXYCwQ3Fze1FfqxwfsxkiU9lLZU80L7Do8uo2snv1RuhSJTGJZtL/Bnwqa6NbVNhOszOHuqT8Ws87TFInRsJy0GiARiM6jOL0Zy3GelMEs8+wazB3fNwrajaSitpXqYAPBY+bXyo4zJat0ROFRyKmwRYGJigE5mK3lKxdOjPZLQDnFq6O7ZbIIUuA3AfN4h7lBpSyCUNb/eJxL3RLj0+Yprj9azLyfqwQz26YNayG1afk1QZorlK8VulnQuXmicCdwx7nX5nxT+DseQJEfdAocfWPEc3Uoj1aRbtQxVZzpnA0PtHu3647u/2QLX7xyH+80GurBiSenGk5fK/Fiz1v+8qnPP914IMyGDA9dJlTH4JdWreQO1TepecU8UfVx0seQGXZhj/6S3eKLO3nDIr2FF6vByLYgTHw20kxLRSphlCn2irdgzemEXIRt/8nDjky6fKoi+1EzvGLCF638+zxg+1bOoX4/P+pnpRhCU3xxN9mVHXvX2VK3vU+XLA8ExJuOydsHXbLgY/euphd5AkCA5LuqE+BkMOc7BFKSpf5jBTlhsqpksFlGHhMSZ97n1eHAp4WQ/a/Ib3RZ2E0hwnFzJaTD/VkkLhsuKFW8nbjTXWyOsBzADD1SMz0mt4CNz5TE9HecAbMcgyIh6+DNd3nWeQBDDZ18ZGmbYONof+i8rxpS795AwriZ1xQ5rR7s0tJaOV2QqR0TUYUuW1tts9f1AAYzqJ697Aj8mMAXWrsNOyOU5eywiGbGoAOtIuATmjHtcPTeIXO0zbDYhQgO9WOc7vLN0ZRvSqxyXiBO0Me8Nn/NYXdnQ9wfdpWfLNc++8GUtawehnCwFoVZG0pJPAIfhW9eJlT4CCWldPxQoSvkxIPN6RmjzE/tOvJF86VxH3/0MVJfOaRPZ8mKxt1lSV0iRLoMWtJkth+XX9dPF3urcDLKO/nGN/gAFfvIppNvs95ZKmyHptDXc1JYjR6nysMYxvwo307aiPyBhyNKxzVRZhqZTVwcRCV3PbfurhqaKrXVQ/B+mlOKFyS+Zd5Fv4Vs6vF1oKhB/YLz3w4S+lg3OitquknFwdELUzTV0r+MX+YZPuRW4/SfEeo0/w4NNbNBmYl7Skn3ZNQ+3kXO4C4I65WYM4IEm96p+4Krp3rG4pnwQvlG3rkZ008dpxytx4oQS0/+DhoHtS/PBES+kwHrYoFVgEV27rBa4DlXxX82iB08n+6XiuOWoQbTUJWKcEwtIlEBrXLEVXPPSMCnpq/gjJJ+W74X2Qvlh34/+AFoFIIqZOu6Op1/YonWoTXtfsopDudDkeRqAiGcrt3riOlOh7SPrr0s+P6jI9+sxrqTJutQ1IP1RUPvXOQXhy4fye9L45z5EzESecJ1E5HT+XctMA54gTDEjOk/k+pERTj89iKnNm86KG+X6MONfoSDi0SkB6Sf+xctZh+4z8vvxzCPu/sXeHdJ7ricArM83jD0lOU6bCSQZvzcIn1OLexnT3foV5GBy+9e/TA0f+XJu0CyKF3WusmYq225KyhpW3d1ZUWMgFWj7fw7qHv0bflDuVZ5xbHfNbt+z1T46HiksKa/JKPSdxdxfOB77qmcKBUHLXoyxU60dCO+Gith455SuzyiARhs2ermcVrAftSgSaIH7u7GaVWk/pyYHwDyBSbCsVnbjVynVucG1VAXolRERFl0ArFwRVbWUJuG3VJOQQB4mAL/V7nk40RR8hphSjxluGxsiOruVoJjRjcMbpNy/857cVF+AV2UKldyk/+zkn+/wnmsBlwEVEpauPh4zdIWN7n4HKZ4lo1IHbilOmh+4hWHlEOtkp1VApHGvYhTFdG7uy+cwHpNlwkxQH/dfMSdFMzuDsPrOXfHUeThuqpqb6bG4X+BgX7rE4w8vQURhSGB0kmQFfjrlCtoZpEr/FqtU3DRXJ6nujcQ/TzR/fzzPlK8w3Y5DlWcgf1PoU0RmclZo9aPmlnAxcg33LqwWyWg92l30ZQL+MSfi4LTYKqAz8YXvc+KtSTma9hnLJgbhXjBIPIRxbiCuVdabbgCl0M+sPshE8PQYWV2zWGd7Vf5nB7jBmJ72ZwCQtktV+d782A8dyFY+idZSOyr8lytwkv3U8Tz2SQFQDPmqYDZT1gO2j6inriIIDDSpMu6vgrNtcvygY0uEq64xBHZTUOiRd+ZmbG2vLcL2lZaAivYupSwlFyKpQ+uBB0544ZAJ3KZf5NR5oei0ku6o/aGh+I+hojFQIn8lt4VbeCJFt5O8XLktcPtfirg0jZEyZU7aN//fZnX5N4h+N8IBLhnX3OrqEx03vBHcaFm8WVwa/Yb7m9qFW77gRwAC700Z7/v0ABFp979ugrpumYMkO+RXMiurFfpCOv7zH+Ax4X64yU42JmZa2P104cfOCWd1IczR4po3MgElL1DFaNyQUSXlqBshN9gHOYHHRDhMOMiHQWNrabEp13dxiFUYlux6y9PrfwjozXu0R4mitJTKzjcOQx+TRxjoU+a8QHoNbPU+nH6ES2lKQuvJifOdnv4vsn4fBFi8FLVG0My1F9aL58vFzVatPwB/HrjoFTuXjZRSGPU3Q3aIypFgSXhodUxbl+B4i3LUwOP0uY0XgtKAjM70rBuDPlNaADeeADOfKzAxChwElKtlSMDAOzdS79Ezw/vs4rdjKQtr0bbxBDCXN/FE0MsqwKOkCpC/FCZ3ejfpJxqDz/+v5nDFNsNgQT8QdDI86FytHSLdZP/VT+7J5QBC62wsUrbRwd5BT55+BPBKfGbzcPbE9u35UbPDrv84eB1WlbKnLUpOX//38JS/49mEvkf1sjNH5pLsRiDnazyAe/BPty9xU74RQm9k82UsQ2QJmGKeg8M7Ya47BwFpSUgsUAZpm36h5j6Fziu/7cYEjpco7B51bEnQdT8Fba6St5Q0Vort9mvS5gkNSnQUnRem8eucZ6H1zEPEGIVRhRnNz6clIsM67I3Ag+YPuvPK8r6q7pEuRGFzgBzBNH9jx7yU686eY7LzQVW0IHPXWEEj3ie0MLd1U6xNE7N13uzD7iLhwqSCuLTprK7GMnGB5wqifijf7RNZYUDUn5sq3TpiOu2r6uF6gg4wqZ2MfkK7dYsFFe0um1/XrnmX43agswD2jcSNed8fN3EQ2qb4GM431oJyiIYkEHFnU+ChkiTdejnSG+TIUzIzqKuWhDtNnmsSpIQiHEEN3UB8ech/6HeshXqfFqzqbAQ3VYaum67yFnrtRgwAym+VD9SmFwwo2LP2PfUjK8pD0LXtI24LtftMcuypSLDvehRagyBiHdV9KM5x+8EgvvyhPMGnMxDg3IRBwc8uEeRmSRJ5I7vBMezkzkSHNEg8vIotk21w8U/+8qhKgUABwuhNQb79Hc6sE95iH8hk0nwsEXn0cwWDjibNyP5Om28YS5liLUabAMs2hE1jDwEviY150jZX/t5Z/21W/8PSoyvVMZ9oyBXd4B6J7+SkiQjQxiO56EWMPqnDAMb3GbGXABVqKOfARnFjpoI1SA3ZtZ/N7JTZkQdaw1CTEFkAYjLCWPV6/TpAr3sCWKJ9I5aZC3uziJk200fPcj3tlEYzP8vQ1LJ9dkYbvNaALAgTjIH0T9uioPE6OlhDxzLBF73It+4C+ze0TfKqKB1iUdK4I8hl8FPviFQLkwfxG1yBg0NPZhmRf2dQGwOQG/dolDPIfdeIvR7qSfiyFrm7zqPIhn2p7KOhUcfIzyh1yXc+1lJcO8mJziFgcfUerG18kBwWwm03vV6LZS3QrVH7K8hkvWVkW9Bmr0YBkkzQ23504VDz67UY046P+2CzvkABzimxFCOZhPE3S8HSfe00ziJo2A0fwg/319eAoor5ASbhL4N1bZ4c+pZvAqcFNSV6vD39Be0xzgJ+pMKD+RjkQU3cwuFukecC5tzD/UuiYymEHm6REVAvEONwt3dfrj80cqa8lBilmQxmmmqAp4CNMz7VsrpxSliNO+9xyKFkEb5i/typA4BJqxuujdHwGg4jutWxuH0s9/Kro7d3cP080r1LuEm+7TfZwEBdTj4kyLKmaCSvuQuGoZgDhYOjy8OXxe/oB6XbnI3HdOi/hPk13aa+xaBSv0XIYIlVo+RmpmRKf4eYf7qsQdhClRn5P1KKg+q/PG0j9l+kaj45fjO3iiFqSqboI9VOil+2p1F19olvoVpNIbqlEt03g8ZjdvYdGk/jeIbHf0DWYYHgCDEHs7ybjvwQL9e29vjcWn80l4cPLOb1K0CSph/NMrQwZDXhav16kBd62bbF71C7Pz9m7KUjvE1ZyYofYRjkYuPO2hfQ5BZTxv6bcM4ifaXlBVS9j0X+MnW+RYypAuFXWRbXfpWehd8oFepCyZdeuVLtmYhkMaXkPM33CBKe+BoN9K/KiAeViKjRhZHJQQAcFZS1pXWkpkHnOWSh2MwnRP6+nyEODj8TqBvnrtGrg7ElErmgl4TebMagljJW/6PgcHNkxpC+d+2mZQYbLCNEBg0nuxfXsh/D5VjyER9fg9ArsrwjZgAfquRvKouA8eNhBdS/UY2lSZwF8rLE/NRvpKSxogkJL3reFau9AJZL/d1QwXNTq0/tVfuQ3Pzrh0Ov3qwT9iWBfATUGivckvZcMCvxeB9hVNiQNIkrGfQ1VrvSALtcdVnVTyJAaIQCeGW6lV0Jpfev0NZ1xMIOUCI9ZSmYlMRy/P2mPy5YuUjjPBcU/WdiUgV2R68IYEQSKB3rU84judzhZX38faYxgCBh4xwtPwUG53+2PjgRGhoyKYfTmsnw53ZOwURT5pP+srtB1zI4AnBrR8ET385dso+JdlfAzZXXe9SRaaWzg16CUJxZBfuNorx/3x73k3dr2ei0j/QD6DErHOLcYWAWTVvRYs4jAa0NnUNm4D9u4bhaEnI1cr04RRPZam4gyqJAcRhr8JOiIWq7aldisiFB3NxWCbJUfEi9+lD5O9uIpvtbdFF+38GC/NOSB0nHV+nq9TJtB/+87767kVpKkZ96A4Bpt/+X/OdnSWM5nrnsCm2kPH09IOB5iaY7couho2q5GCkjI5CkZfoegQfbltoB3PRgoLnXGiUQk5arSxbhH1KlmDy0VT9QHcs4yteRLF8d6P9smlVWGY4inhRZ7D1B4yVXAL2c3gUZjLhCv4cdD1Iace1CANWtNiE4imxmf2l2MIXw1FJ55XUwlsEg4Mpl5Dw6IYtdnB/s5bqjV8WCKRmuuVIyPnmCCMfmnPTg2zjOBoyw5/tt+yPWrXmFgaOuLG9cNi/opdtwp7uNWpF/qgbbU0qYItVthlbnrUKwbS4Jp7VIxs5mNg8wXcJH8+mrWpZMcq97WP2Q78d1F3IPKb/3rpOXzGoXUVP+nar3xD/HEiu3MV0z1XFRknv/UDBxWy+N0Hm24L3v/NjmEvlaFdBTfPLTZrufFnjerE6rZQmQ+TqEti9ze3pW20wgx2xHj4huVpR5PowGWGtQyUHCVJFcB0xcVy2+67JmoRAFE4JnudEJBQN8V7dzyTBWrQBtB6brea9z531wR/pW6lFoKE6+YICGs8VkCUJnQ/fThg2BvfICF/dyEUelAxlBgHUffgW+c5Fchghm/gqtUDxHKOvEmwrF6h31bdz5Ao7gR8PGbupETXTQjYphAEr92cJpbWf5yDkM+kuda2l4YMVDVQC3uaDHOnhK5JfM0Tu4rnHZKaw9ErLOsZt6e9eH34K3JakaB660PgeYz2k9xctQc8DJq9L/UV4eAGmN1aJzTm9fD4lDfiAprn+ZhmkERqZ28wj7vKv7U93yUN/tNf7SAmgF3EEjum1N6vTdy+l2FABCIEiFtb/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" lazyload alt="微信开发工具"></p><p>小程序帐号<a href="https://mp.weixin.qq.com/wxopen/waregister?action=step1" target="_blank" rel="noopener external nofollow noreferrer">注册</a>,获取的AppID并导入本地的项目</p></li><li><h5 id="HBuildX"><a href="#HBuildX" class="headerlink" title="HBuildX"></a><a href="https://www.dcloud.io/hbuilderx.html" target="_blank" rel="noopener external nofollow noreferrer">HBuildX</a></h5><p><img src="https://hx.dcloud.net.cn/static/snapshots/tutorial/startup.gif" srcset="data:image/jpeg;base64,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" lazyload alt="HBuildX"></p><p>直接官网下载,主要是配置打包小程序后在微信开发工具中开发和测试</p></li></ol><br><h4 id="第二步:安装-pnpm-和-uni-app-脚手架"><a href="#第二步:安装-pnpm-和-uni-app-脚手架" class="headerlink" title="第二步:安装 pnpm 和 uni-app 脚手架"></a>第二步:安装 pnpm 和 uni-app 脚手架</h4><p>以下操作基于已经安装 nodejs 环境操作,例如小波的环境版本</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs powershell">node <span class="hljs-literal">-v</span><br>v16.<span class="hljs-number">13.1</span><br></code></pre></td></tr></table></figure><ul><li><p><strong>安装 pnpm</strong></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs powershell">// 全局安装<br>npm install pnpm <span class="hljs-literal">-g</span> <br>// 切换淘宝源<br>pnpm config <span class="hljs-built_in">set</span> registry https://registry.npmmirror.com/<br>// 查看源<br>pnpm config get registry<br></code></pre></td></tr></table></figure><blockquote><p><span class="label label-info">提示</span></p><p>pnpm 跟 npm 和 yarn 的差距就是把原来每个项目安装 modules 放到统一的文件夹中,通过<strong>符号链接</strong>(软连接)和<strong>硬链接</strong>,注意<strong>项目要和 pnpm 统一存依赖的 modules 同盘</strong>,不然就等于丢失了 pnpm 的优势。</p></blockquote></li><li><p><strong>安装 uni-app 脚手架(参考官网文档<sup id="fnref:2" class="footnote-ref"><a href="#fn:2" rel="footnote"><span class="hint--top hint--rounded" aria-label="https://uniapp.dcloud.net.cn/quickstart-cli.html
">[2]</span></a></sup>)</strong></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs powershell"><span class="hljs-comment"># 创建以 typescript 开发的工程 </span><br>npx degit dcloudio/uni<span class="hljs-literal">-preset-vue</span><span class="hljs-comment">#vite-ts vue3-vite-uniapp</span><br></code></pre></td></tr></table></figure><blockquote><p><span class="label label-warning">注意</span></p><p>一定要选择和pnpm存依赖包相同的盘符安装创建项目哦</p></blockquote></li></ul><br><h4 id="第三步:初始项目"><a href="#第三步:初始项目" class="headerlink" title="第三步:初始项目"></a>第三步:初始项目</h4><ol><li><h5 id="切到自己创建的文件夹执行初始命令"><a href="#切到自己创建的文件夹执行初始命令" class="headerlink" title="切到自己创建的文件夹执行初始命令"></a>切到自己创建的文件夹执行初始命令</h5><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs powershell">// <span class="hljs-built_in">cd</span>到自己建立的文件夹<br><span class="hljs-built_in">cd</span> x/vue3<span class="hljs-literal">-vite-uniapp</span><br>pnpm install<br></code></pre></td></tr></table></figure><p>初始的 <code>package.json</code></p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"name"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni-preset-vue"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"version"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"0.0.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"scripts"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"dev:app"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p app"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:app-android"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p app-android"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:app-ios"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p app-ios"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:custom"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:h5"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:h5:ssr"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni --ssr"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:mp-alipay"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p mp-alipay"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:mp-baidu"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p mp-baidu"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:mp-jd"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p mp-jd"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:mp-kuaishou"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p mp-kuaishou"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:mp-lark"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p mp-lark"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:mp-qq"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p mp-qq"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:mp-toutiao"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p mp-toutiao"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:mp-weixin"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p mp-weixin"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:quickapp-webview"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p quickapp-webview"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:quickapp-webview-huawei"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p quickapp-webview-huawei"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dev:quickapp-webview-union"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p quickapp-webview-union"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:app"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p app"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:app-android"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p app-android"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:app-ios"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p app-ios"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:custom"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:h5"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:h5:ssr"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build --ssr"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:mp-alipay"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p mp-alipay"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:mp-baidu"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p mp-baidu"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:mp-jd"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p mp-jd"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:mp-kuaishou"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p mp-kuaishou"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:mp-lark"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p mp-lark"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:mp-qq"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p mp-qq"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:mp-toutiao"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p mp-toutiao"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:mp-weixin"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p mp-weixin"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:quickapp-webview"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p quickapp-webview"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:quickapp-webview-huawei"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p quickapp-webview-huawei"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:quickapp-webview-union"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p quickapp-webview-union"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"type-check"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"vue-tsc --noEmit"</span><br> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"dependencies"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"@dcloudio/uni-app"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-app-plus"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-components"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-h5"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-mp-alipay"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-mp-baidu"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-mp-jd"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-mp-kuaishou"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-mp-lark"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-mp-qq"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-mp-toutiao"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-mp-weixin"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-quickapp-webview"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"vue"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^3.2.45"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"vue-i18n"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^9.1.9"</span><br> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"devDependencies"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"@dcloudio/types"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^3.3.2"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-automator"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-cli-shared"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/uni-stacktracey"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@dcloudio/vite-plugin-uni"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"3.0.0-alpha-3070720230316001"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@vue/tsconfig"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^0.1.3"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"typescript"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^4.9.4"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"vite"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"4.0.4"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// tsc默认已装</span><br> <span class="hljs-attr">"vue-tsc"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^1.0.24"</span><br> <span class="hljs-punctuation">}</span><br><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure><p>和小波已经搭建好的项目 <code>package.json</code> 差异的引入包</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-attr">"scripts"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-comment">// lint 检测</span><br> <span class="hljs-attr">"lint"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"eslint --ext .ts,tsx,vue src/** --no-error-on-unmatched-pattern --quiet"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// lint 修复</span><br> <span class="hljs-attr">"lint:fix"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"eslint --ext .ts,tsx,vue src/** --no-error-on-unmatched-pattern --fix"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// koa-mock数据服务</span><br> <span class="hljs-attr">"mock"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"cd mock && ts-node-dev mock.ts"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// jest 自测</span><br> <span class="hljs-attr">"test"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"jest"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// jest 测试覆盖率</span><br> <span class="hljs-attr">"test:unit"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"jest --coverage"</span><br><span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br><span class="hljs-attr">"dependencies"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-comment">// uni-ui</span><br> <span class="hljs-attr">"@dcloudio/uni-ui"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^1.4.26"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// pinia</span><br> <span class="hljs-attr">"pinia"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.0.33"</span><span class="hljs-punctuation">,</span><br><span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br><span class="hljs-attr">"devDependencies"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"sass"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^1.60.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// type申明</span><br> <span class="hljs-attr">"@types/faker"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"5.1.5"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@types/jest"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^29.5.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@types/koa"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.13.5"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@types/koa-logger"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^3.1.2"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@types/koa-router"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^7.4.4"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@types/koa2-cors"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.0.2"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@types/node"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^18.15.9"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// eslint && prettier</span><br> <span class="hljs-attr">"@typescript-eslint/eslint-plugin"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^5.56.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@typescript-eslint/parser"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^5.56.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@vue/eslint-config-prettier"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^7.1.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@vue/eslint-config-typescript"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^11.0.2"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@vuedx/typescript-plugin-vue"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^0.7.6"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"eslint"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^8.36.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"eslint-plugin-prettier"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^4.2.1"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"eslint-plugin-vue"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^9.10.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"prettier"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.8.7"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// jest</span><br> <span class="hljs-attr">"@babel/core"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^7.21.3"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@babel/preset-env"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^7.20.2"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@vue/test-utils"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"2.0.0-rc.18"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"babel-jest"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"26.6.3"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"jest"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"26.6.3"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"jest-environment-node"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"27.5.1"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"@testing-library/jest-dom"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^5.16.5"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"ts-jest"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"26.5.6"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"vue-jest"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"5.0.0-alpha.10"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// koa 数据接口服务</span><br> <span class="hljs-attr">"chalk"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"4.1.2"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"faker"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"5.1.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"koa"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.14.1"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"koa-body"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^6.0.1"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"koa-logger"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^3.2.1"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"koa-router"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^12.0.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"koa2"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"2.0.0-alpha.7"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"koa2-cors"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.0.6"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"lodash"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^4.17.21"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"log4js"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^6.9.1"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"postcss"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">">=8.1.0 <9.0.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"reflect-metadata"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^0.1.13"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"ts-node-dev"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.0.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"tslib"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.5.0"</span><span class="hljs-punctuation">,</span><br><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure><p>初始的文件树</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><code class="hljs powershell">vue3<span class="hljs-literal">-vite-uniapp</span><br>├─ index.html // 入口<br>├─ package.json // 安装依赖配置<br>├─ pnpm<span class="hljs-literal">-lock</span>.yaml // pnpm锁定配置<br>├─ README.md // <span class="hljs-built_in">md</span>说明<br>├─ src<br>│ ├─ App.vue // 小程序页面状态<br>│ ├─ env.d.ts // .vue组件componet时的ts申明<br>│ ├─ main.ts // 入口js,导入了app.vue<br>│ ├─ manifest.json // uniapp相关配置应用名称、appid、logo、版本等打包信息<br>│ ├─ components <br>│ │ └─ counter<br>│ │ │ └─ counter.vue // 测试pinia状态组件<br>│ ├─ pages <br>│ │ └─ index<br>│ │ │ └─ index.vue // 首页<br>│ ├─ <span class="hljs-keyword">static</span> // 静态资源包<br>│ │ └─ logo.png<br>│ ├─ pages.json // 小程序路由,分包<br>│ ├─ shime<span class="hljs-literal">-uni</span>.d.ts // vue hooks的ts申明(暂时理解)<br>│ └─ uni.scss // uni<span class="hljs-literal">-app</span>内置的常用样式变量<br>├─ tsconfig.json // ts的配置<br>└─ vite.config.ts // vite配置<br></code></pre></td></tr></table></figure><p>和小波已经搭建好的项目文件树的差异</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br></pre></td><td class="code"><pre><code class="hljs powershell">uniapp_vue3_vite_pinia<br>├─ .gitignore // git忽略文件<br>├─ .eslintrc.js // eslint的配置<br>├─ .prettierrc.js // prettier的配置<br>├─ jest.config.js // jest测试配置<br>├─ vue.config.js // uni<span class="hljs-literal">-ui</span>依赖使用<br>├─ .hbuilderx // HBuildX配置 <br>├─ .vscode <br>│ └─ settings.json // vscod配置 <br>├─ coverage // jest单元测试覆盖查看UI界面 <br>├─ src<br>│ ├─ utils<br>│ │ ├─ request.d.ts // 封装请求ts申明<br>│ │ └─ request.ts // uni的请求方法封装<br>│ ├─ config <br>│ │ └─ app.ts // 封装接口使用的常量<br>│ ├─ api<br>│ │ ├─ user.d.ts // 用户页面接口ts申明<br>│ │ └─ user.ts // 用户页面使用接口 <br>│ ├─ components<br>│ │ └─ uni<span class="hljs-literal">-nav-bar</span> // 自定义头部导航栏<br>│ │ │ ├─ style.scss // 样式<br>│ │ │ ├─ types.d.ts // 申明<br>│ │ │ ├─ uni<span class="hljs-literal">-nav-bar</span>.vue // 组件入口<br>│ │ │ └─ uni<span class="hljs-literal">-status-bar</span>.vue // 组件依赖的小组件<br>│ ├─ pages<br>│ │ └─ menu // 自定义头部导航栏<br>│ │ │ ├─ style.scss // 样式<br>│ │ │ ├─ types.d.ts // 申明<br>│ │ │ ├─ index.vue // 页面入口<br>│ │ │ └─ menuHooks<br>│ │ │ │ └─ index.vue // hooks必须要用Index来命名,不然报错<br>│ ├─ stores<br>│ │ ├─ golbalSysInfo.ts // 系统信息<br>│ │ └─ index.ts // 导出createPinia(主要是jest测试使用,不然会报错)<br>│ ├─ subPages // 分包文件夹<br>├─ tests // jest 测试用例<br>├─ types <br>│ └─ global.d.ts // ts全局申明<br> <br>├─ mock<br>│ ├─ controller <br>│ │ ├─ user.ts // 用户相关接口控制器<br>│ │ └─ banner.ts // banner图接口控制器<br>│ ├─ middleware // 前后端交互最重要的就是两个参数 request 和 respond ,每一个中间件执行完毕应该进入下一个中间件,因此还需要一个 next 参数,用来启动下一个中间件。<br>│ │ └─ resultHandler.ts // 用来给每个响应对象包装响应码等,输出ctx.body<br>│ ├─ mockdb // 各种假数据<br>│ ├─ utils<br>│ │ └─ logger.ts // 输出错误日志函数<br>│ ├─ constant.ts // 常量<br>│ ├─ mock.ts // 主入口<br>│ ├─ requestDecorator.ts // 生成 http method 装饰器,创建类路径装饰器<br>│ ├─ router.ts // 路由(拿到controller中定义的接口,结合meta数据添加路由 和 验证)<br>│ ├─ tsconfig.json // ts配置<br>│ └─ type.d.ts // ts申明<br></code></pre></td></tr></table></figure></li><li><h5 id="启动命令-h5模式"><a href="#启动命令-h5模式" class="headerlink" title="启动命令 h5模式"></a>启动命令 h5模式</h5><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm dev:h5<br></code></pre></td></tr></table></figure><p>确认初始么有问题,则开始后续操作</p></li></ol><br><h4 id="第四步:卸载不需要默认安装的依赖库"><a href="#第四步:卸载不需要默认安装的依赖库" class="headerlink" title="第四步:卸载不需要默认安装的依赖库"></a>第四步:卸载不需要默认安装的依赖库</h4><p>uni-app 脚手架默认安装了 vue-i18n 多语言依赖库,可根据需求自行选择是否卸载</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm remove vue<span class="hljs-literal">-i18n</span><br></code></pre></td></tr></table></figure><br><h4 id="第五步:安装-eslint-preitter-相关依赖库,配置-vscode"><a href="#第五步:安装-eslint-preitter-相关依赖库,配置-vscode" class="headerlink" title="第五步:安装 eslint + preitter 相关依赖库,配置 vscode"></a>第五步:安装 eslint + preitter 相关依赖库,配置 vscode</h4><p>标准三件套</p><ul><li>代码规范 ESlint</li><li>代码格式美化 Prettier</li><li>多人协作保持代码风格一致配置 vscode</li></ul><ol><li><h5 id="安装相关依赖"><a href="#安装相关依赖" class="headerlink" title="安装相关依赖"></a>安装相关依赖</h5><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm add @typescript<span class="hljs-literal">-eslint</span>/eslint<span class="hljs-literal">-plugin</span> <span class="hljs-literal">-D</span><br>pnpm add @typescript<span class="hljs-literal">-eslint</span>/parser <span class="hljs-literal">-D</span><br>pnpm add @vue/eslint<span class="hljs-literal">-config-prettier</span> <span class="hljs-literal">-D</span><br>pnpm add @vue/eslint<span class="hljs-literal">-config-typescript</span> <span class="hljs-literal">-D</span><br>pnpm add @vuedx/typescript<span class="hljs-literal">-plugin-vue</span> <span class="hljs-literal">-D</span><br>pnpm add eslint <span class="hljs-literal">-D</span><br>pnpm add eslint<span class="hljs-literal">-plugin-prettier</span> <span class="hljs-literal">-D</span><br>pnpm add eslint<span class="hljs-literal">-plugin-vue</span> <span class="hljs-literal">-D</span><br>pnpm add prettier <span class="hljs-literal">-D</span><br></code></pre></td></tr></table></figure><blockquote><p><span class="label label-info">提示</span></p><p><code>@vuedx/typecheck</code> 和 <code>@vuedx/typescript-plugin-vue</code> 不安装似乎也没啥影响,npm 上的描述是一个命令行检查 vue 项目的工具。在我的理解中一般使用于 githooks。</p><p>安装也没关系,反正开发环境使用</p></blockquote></li><li><h5 id="设置代码规范和格式化规则"><a href="#设置代码规范和格式化规则" class="headerlink" title="设置代码规范和格式化规则"></a>设置代码规范和格式化规则</h5><p>项目根目录创建 <code>.eslintrc.js</code> 并贴入以下代码</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br></pre></td><td class="code"><pre><code class="hljs js"><span class="hljs-variable language_">module</span>.<span class="hljs-property">exports</span> = {<br> <span class="hljs-comment">// true: 它就会停止在父级目录中寻找</span><br> <span class="hljs-attr">root</span>: <span class="hljs-literal">true</span>,<br> <span class="hljs-comment">// 预定义的全局变量,这里是浏览器环境</span><br> <span class="hljs-attr">env</span>: {<br> <span class="hljs-attr">browser</span>: <span class="hljs-literal">true</span>,<br> <span class="hljs-attr">es2021</span>: <span class="hljs-literal">true</span>,<br> <span class="hljs-attr">node</span>: <span class="hljs-literal">true</span>, <span class="hljs-comment">// 如果defineProps报错</span><br> <span class="hljs-string">"vue/setup-compiler-macros"</span>: <span class="hljs-literal">true</span>,<br> }, <br> <span class="hljs-comment">// ESTree 只是一个 AST 的某一种规范,ESTree 本质上还是 AST</span><br> <span class="hljs-comment">// ESLint 默认的 parser ,只转换 js,默认支持 ES5 的语法: 默认采用vue-eslint</span><br> <span class="hljs-attr">parser</span>: <span class="hljs-string">"vue-eslint-parser"</span>,<br> <span class="hljs-comment">// 子配置:优先使用typescript-eslint,支持es2021</span><br> <span class="hljs-attr">parserOptions</span>: { <span class="hljs-attr">parser</span>: <span class="hljs-string">"@typescript-eslint/parser"</span>, <span class="hljs-attr">ecmaVersion</span>: <span class="hljs-number">2021</span> },<br> <span class="hljs-comment">// 扩展校验风格 合并 eslint 中的 plugins,rules 的</span><br> <span class="hljs-attr">extends</span>: [<br> <span class="hljs-string">"plugin:vue/base"</span>,<br> <span class="hljs-string">"plugin:vue/vue3-essential"</span>,<br> <span class="hljs-string">"eslint:recommended"</span>,<br> <span class="hljs-string">"@vue/prettier"</span>,<br> <span class="hljs-string">"@vue/typescript"</span>,<br> ],<br> <span class="hljs-comment">// 它的默认 parser 参数会将代码转换为 AST,AST 被 plugin&rules 用来校验和生成错误信息</span><br> <span class="hljs-attr">plugins</span>: [],<br> <span class="hljs-attr">rules</span>: {<br> <span class="hljs-comment">// 检测未使用的变量,函数和函数的参数</span><br> <span class="hljs-string">"no-unused-vars"</span>: <span class="hljs-string">"off"</span>,<br> <span class="hljs-comment">// 检测未使用的变量,函数和函数的参数 for typescript</span><br> <span class="hljs-string">"@typescript-eslint/no-unused-vars"</span>: <span class="hljs-string">"off"</span>,<br> <span class="hljs-comment">// 语句强制分号结尾</span><br> <span class="hljs-attr">semi</span>: <span class="hljs-number">0</span>,<br> <span class="hljs-comment">// 如果报错回车结尾错误 window开发环境,但是上传git又是linux</span><br> <span class="hljs-attr">endOfLine</span>: <span class="hljs-string">"off"</span>,<br> <span class="hljs-string">"no-console"</span>: process.<span class="hljs-property">env</span>.<span class="hljs-property">NODE_ENV</span> === <span class="hljs-string">"production"</span> ? <span class="hljs-string">"warn"</span> : <span class="hljs-string">"off"</span>,<br> <span class="hljs-string">"no-debugger"</span>: process.<span class="hljs-property">env</span>.<span class="hljs-property">NODE_ENV</span> === <span class="hljs-string">"production"</span> ? <span class="hljs-string">"warn"</span> : <span class="hljs-string">"off"</span>,<br> <span class="hljs-comment">// 在rules中添加自定义规则 关闭组件命名规则</span><br> <span class="hljs-string">"vue/multi-word-component-names"</span>: <span class="hljs-string">"off"</span>,<br> },<br> <span class="hljs-comment">// 忽略文件</span><br> <span class="hljs-attr">ignorePatterns</span>: [<br> <span class="hljs-string">"*.css"</span>,<br> <span class="hljs-string">"*.less"</span>,<br> <span class="hljs-string">"*.scss"</span>,<br> <span class="hljs-string">"*.jpg"</span>,<br> <span class="hljs-string">"*.png"</span>,<br> <span class="hljs-string">"*.gif"</span>,<br> <span class="hljs-string">"*.svg"</span>,<br> <span class="hljs-string">"*vue.d.ts"</span>,<br> ],<br>};<br></code></pre></td></tr></table></figure><blockquote><p><span class="label label-info">提示</span></p><ol><li><p><code>extends:[]</code></p><p>配置语法说明:</p><p><code>plugin:vue/base</code> 只是使解析工作的基本规则。还没有 lint 任何东西。</p><p><code>plugin:vue/essential</code> 以上,加上仅用于防止 Vue 中的错误或意外行为的规则。</p><p><code>plugin:vue/strongly-recommended</code> 以上,加上通常被认为是最佳实践的规则。</p><p><code>plugin:vue/recommended</code> 以上,加上一些经常被建议的样式规则。</p><p><code>extends: [...]</code> 大概语义:</p><p>使用vue最基本规则,vue3错误或意外行为的规则,eslint最佳实践的规则</p><p>简写说明:</p><p>引入 <code>@vue/eslint-config-prettier</code> 可以简写为 <code>@vue/prettier</code></p><p><code>vue/base</code> 全称应该是 <code>eslint-plugin-vue/base</code></p><p>简单理解就是 eslint 默认把和自己相关命名进行了转行 <code>eslint-config-</code>,<code>eslint-plugin-</code></p></li><li><p><code>ignorePatterns: []</code> 忽略文件配置是为了 eslint 命令执行检测造成非必要的混淆报错</p></li></ol></blockquote><p>项目根目录创建 <code>.prettierrc.js</code> 并贴入以下代码</p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><code class="hljs js"><span class="hljs-variable language_">module</span>.<span class="hljs-property">exports</span> = {<br> <span class="hljs-comment">// 超过最大值换行</span><br> <span class="hljs-attr">printWidth</span>: <span class="hljs-number">120</span>,<br> <span class="hljs-comment">// 缩进2</span><br> <span class="hljs-attr">tabWidth</span>: <span class="hljs-number">2</span>,<br> <span class="hljs-comment">// ??? == useTabs</span><br> <span class="hljs-attr">tabs</span>: <span class="hljs-literal">false</span>,<br> <span class="hljs-comment">// 末尾添加分号</span><br> <span class="hljs-attr">semi</span>: <span class="hljs-literal">false</span>,<br> <span class="hljs-comment">// 使用单引号</span><br> <span class="hljs-attr">singleQuote</span>: <span class="hljs-literal">true</span>,<br> <span class="hljs-comment">// 给对象里的属性名是否要加上引号,默认为as-needed,即根据需要决定,如果不加引号会报错则加,否则不加</span><br> <span class="hljs-attr">quoteProps</span>: <span class="hljs-string">"as-needed"</span>,<br> <span class="hljs-comment">// 对象大括号直接是否有空格,默认为true,效果:{ foo: bar }</span><br> <span class="hljs-attr">bracketSpacing</span>: <span class="hljs-literal">true</span>,<br> <span class="hljs-comment">// jsx 标签的反尖括号需要换行</span><br> <span class="hljs-attr">jsxBracketSameLine</span>: <span class="hljs-literal">false</span>,<br> <span class="hljs-comment">// 箭头函数参数只有一个时是否要有小括号 avoid: 省略括号</span><br> <span class="hljs-attr">arrowParens</span>: <span class="hljs-string">"always"</span>,<br> <span class="hljs-comment">// 结尾是 \n \r \n\r auto</span><br> <span class="hljs-attr">endOfLine</span>: <span class="hljs-string">"auto"</span>,<br>};<br></code></pre></td></tr></table></figure><p>在 <code>package.json</code> 中 script 添加 Ts 检查命令和 Eslint 检查命令</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-attr">"scripts"</span><span class="hljs-punctuation">:</span><span class="hljs-punctuation">{</span><br><span class="hljs-attr">"lint"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"eslint --ext .ts,tsx,vue src/** --no-error-on-unmatched-pattern --quiet"</span><span class="hljs-punctuation">,</span><br><span class="hljs-attr">"lint:fix"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"eslint --ext .ts,tsx,vue src/** --no-error-on-unmatched-pattern --fix"</span><br><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure></li><li><h5 id="调用"><a href="#调用" class="headerlink" title="调用"></a>调用</h5><figure class="highlight coq"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs coq">pnpm lint<br>pnpm lint:<span class="hljs-built_in">fix</span><br></code></pre></td></tr></table></figure></li><li><h5 id="配置-vscode"><a href="#配置-vscode" class="headerlink" title="配置 vscode"></a>配置 vscode</h5><p>项目根目录创建 <code>.vscode/settings.json</code></p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-punctuation">{</span><br> <span class="hljs-comment">// 保存时格式化</span><br> <span class="hljs-attr">"editor.formatOnSave"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// 保存时修复来自所有插件的所有可自动修复的ESlint错误</span><br> <span class="hljs-attr">"editor.codeActionsOnSave"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"source.fixAll.eslint"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// 应通过ESLint验证的语言数组</span><br> <span class="hljs-attr">"eslint.validate"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"typescript"</span><span class="hljs-punctuation">,</span> <span class="hljs-string">"vue"</span><span class="hljs-punctuation">,</span> <span class="hljs-string">"html"</span><span class="hljs-punctuation">,</span> <span class="hljs-string">"json"</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// 默认格式化插件选择</span><br> <span class="hljs-attr">"editor.defaultFormatter"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"esbenp.prettier-vscode"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// js格式化选择</span><br> <span class="hljs-attr">"[javascript]"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"editor.defaultFormatter"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"esbenp.prettier-vscode"</span> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// vue格式化选择</span><br> <span class="hljs-attr">"[vue]"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"editor.defaultFormatter"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"esbenp.prettier-vscode"</span> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// html格式化选择</span><br> <span class="hljs-attr">"[html]"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"editor.defaultFormatter"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"esbenp.prettier-vscode"</span> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// json格式化选择</span><br> <span class="hljs-attr">"[json]"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <span class="hljs-attr">"editor.defaultFormatter"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"esbenp.prettier-vscode"</span> <span class="hljs-punctuation">}</span><br> <span class="hljs-comment">// "json.format.enable": false</span><br><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure></li><li><h5 id="代码书写规范"><a href="#代码书写规范" class="headerlink" title="代码书写规范"></a>代码书写规范</h5><p>请参考 vue 官方文档规范保持一致性,小波页面参考</p><figure class="highlight tsx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br></pre></td><td class="code"><pre><code class="hljs tsx"><script setup lang=<span class="hljs-string">"ts"</span>><br> <span class="hljs-comment">/**</span><br><span class="hljs-comment"> * 导入 start</span><br><span class="hljs-comment"> * 顺序:1.依赖库 2.请求 3.常量 4.组件 5. ts申明</span><br><span class="hljs-comment"> */</span><br><span class="hljs-keyword">import</span> vue<br><span class="hljs-keyword">import</span> api/data/piniaStore<br><span class="hljs-keyword">import</span> hooks.<span class="hljs-property">vue</span>/components.<span class="hljs-property">vue</span><br><span class="hljs-keyword">import</span> x.<span class="hljs-property">d</span><br> <br><span class="hljs-comment">/**</span><br><span class="hljs-comment"> * 变量 start</span><br><span class="hljs-comment"> */</span><br><span class="hljs-keyword">const</span> <span class="hljs-attr">store</span>: <span class="hljs-built_in">any</span> = ...<br><span class="hljs-keyword">const</span> <span class="hljs-attr">state</span>: stateType = <span class="hljs-title function_">reactive</span>({})<br> <br><span class="hljs-comment">/**</span><br><span class="hljs-comment"> * 函数 start</span><br><span class="hljs-comment"> * <span class="hljs-doctag">@init</span> 初始 - 判断骨架屏处理</span><br><span class="hljs-comment"> */</span><br><span class="hljs-keyword">const</span> handleInit = <span class="hljs-keyword">async</span> (): <span class="hljs-title class_">Promise</span><<span class="hljs-built_in">void</span>> => {<br> <span class="hljs-keyword">await</span> <span class="hljs-title function_">api</span>()<br> loading.<span class="hljs-property">value</span> = <span class="hljs-literal">false</span><br>}<br> <br><span class="hljs-comment">/**</span><br><span class="hljs-comment"> * 调用 start</span><br><span class="hljs-comment"> */</span><br><span class="hljs-title function_">handleInit</span>()<br></script><br><span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">template</span>></span></span><br><span class="language-xml"> <span class="hljs-tag"><<span class="hljs-name">view</span>></span>...<span class="hljs-tag"></<span class="hljs-name">view</span>></span></span><br><span class="language-xml"><span class="hljs-tag"></<span class="hljs-name">template</span>></span></span><br><span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">style</span> <span class="hljs-attr">lang</span>=<span class="hljs-string">"scss"</span>></span><span class="language-css"></span></span><br><span class="language-css"><span class="language-xml"> <span class="hljs-keyword">@import</span> <span class="hljs-string">'./style.scss'</span>;</span></span><br><span class="language-css"><span class="language-xml"></span><span class="hljs-tag"></<span class="hljs-name">style</span>></span></span><br></code></pre></td></tr></table></figure></li><li><h5 id="配置别名"><a href="#配置别名" class="headerlink" title="配置别名"></a>配置别名</h5><p><code>vite.config.ts</code></p><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-keyword">import</span> { resolve } <span class="hljs-keyword">from</span> <span class="hljs-string">"path"</span>;<br>...<br><span class="hljs-attr">resolve</span>: { <br> <span class="hljs-attr">alias</span>: [ <br> { <br> <span class="hljs-attr">find</span>: <span class="hljs-string">"@"</span>, <br> <span class="hljs-attr">replacement</span>: <span class="hljs-title function_">resolve</span>(__dirname, <span class="hljs-string">"src"</span>), <br> }, <br> ], <br>},<br></code></pre></td></tr></table></figure><p>完整 <code>vite.config.ts</code></p><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-keyword">import</span> { defineConfig } <span class="hljs-keyword">from</span> <span class="hljs-string">'vite'</span><br><span class="hljs-comment">// 需要安装 @types/node</span><br><span class="hljs-keyword">import</span> { resolve } <span class="hljs-keyword">from</span> <span class="hljs-string">'path'</span><br><span class="hljs-keyword">import</span> uni <span class="hljs-keyword">from</span> <span class="hljs-string">'@dcloudio/vite-plugin-uni'</span><br><br><span class="hljs-comment">// https://vitejs.dev/config/</span><br><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-title function_">defineConfig</span>({<br> <span class="hljs-attr">plugins</span>: [<span class="hljs-title function_">uni</span>()],<br> <span class="hljs-attr">resolve</span>: {<br> <span class="hljs-attr">alias</span>: [<br> {<br> <span class="hljs-attr">find</span>: <span class="hljs-string">'@'</span>,<br> <span class="hljs-attr">replacement</span>: <span class="hljs-title function_">resolve</span>(__dirname, <span class="hljs-string">'src'</span>),<br> },<br> ],<br> },<br>})<br></code></pre></td></tr></table></figure><p><code>tsconfig.json</code></p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-attr">"compilerOptions"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <br> <span class="hljs-attr">"baseUrl"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"."</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-attr">"paths"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <br> <span class="hljs-attr">"@/*"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span> <span class="hljs-string">"src/*"</span> <span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span> <br><span class="hljs-punctuation">}</span><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure><p>完整 <code>tsconfig.json</code></p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"extends"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"@vue/tsconfig/tsconfig.json"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"compilerOptions"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"sourceMap"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"baseUrl"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"."</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"paths"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"@/*"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"./src/*"</span><span class="hljs-punctuation">]</span><br> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"lib"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"esnext"</span><span class="hljs-punctuation">,</span> <span class="hljs-string">"dom"</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"types"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"@dcloudio/types"</span><span class="hljs-punctuation">,</span> <span class="hljs-string">"jest"</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// 导入 x.d.ts 报错 x.d.ts”不是模块。</span><br> <span class="hljs-attr">"typeRoots"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"node_modules/@types"</span><span class="hljs-punctuation">]</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// 此导入从不用作值,必须使用 "import type" ,因为 "importsNotUsedAsValues" 设置为 "error"</span><br> <span class="hljs-attr">"importsNotUsedAsValues"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"remove"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// 是一种类型,在同时启用了 "preserveValueImports" 和 "isolatedModules" 时,必须使用仅类型导入进行导入。</span><br> <span class="hljs-attr">"preserveValueImports"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><br> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"include"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"src/**/*.ts"</span><span class="hljs-punctuation">,</span> <span class="hljs-string">"src/**/*.d.ts"</span><span class="hljs-punctuation">,</span> <span class="hljs-string">"src/**/*.tsx"</span><span class="hljs-punctuation">,</span> <span class="hljs-string">"src/**/*.vue"</span><span class="hljs-punctuation">,</span> <span class="hljs-string">"tests/**/*.ts"</span><span class="hljs-punctuation">,</span> <span class="hljs-string">"./types"</span><span class="hljs-punctuation">]</span><br><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure><blockquote><p><span class="label label-warning">注意</span></p><p>因为用了 typescript,<code>resolve</code>,<code>_dirname</code> 会报 ts 申明错误提示,需要在头部导入 ‘path’ 并安装 <strong>@types/nodes</strong></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm add @types/node <span class="hljs-literal">-D</span><br></code></pre></td></tr></table></figure></blockquote></li></ol><br><h4 id="第六步:安装-pinia"><a href="#第六步:安装-pinia" class="headerlink" title="第六步:安装 pinia"></a>第六步:安装 pinia</h4><ol><li><h5 id="安装-pinia"><a href="#安装-pinia" class="headerlink" title="安装 pinia"></a>安装 pinia</h5><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm add pinia<br></code></pre></td></tr></table></figure></li><li><h5 id="导入-pinia"><a href="#导入-pinia" class="headerlink" title="导入 pinia"></a>导入 pinia</h5><p>正常情况直接在<code>main.ts</code> 导入 pinia</p><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-comment">// pinia状态管理</span><br><span class="hljs-keyword">import</span> { createPinia } <span class="hljs-keyword">from</span> <span class="hljs-string">'pinia'</span><br><span class="hljs-keyword">export</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">createApp</span>(<span class="hljs-params"></span>) { <br> <span class="hljs-keyword">const</span> app = <span class="hljs-title function_">createSSRApp</span>(<span class="hljs-title class_">App</span>) <br> app.<span class="hljs-title function_">use</span>(<span class="hljs-title function_">createPinia</span>()) <br> <span class="hljs-keyword">return</span> { app, }<br>}<br></code></pre></td></tr></table></figure><p>但是为了做 jest 单元测试,所以需要做点调整,创建 <code>store/index.ts</code></p><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-keyword">import</span> { createPinia } <span class="hljs-keyword">from</span> <span class="hljs-string">'pinia'</span><br><span class="hljs-keyword">const</span> pinia = <span class="hljs-title function_">createPinia</span>()<br><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> pinia<br></code></pre></td></tr></table></figure></li><li><h5 id="代码使用"><a href="#代码使用" class="headerlink" title="代码使用"></a>代码使用</h5><p><code>src/pages/menu/index.vue</code></p><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-keyword">import</span> pinia <span class="hljs-keyword">from</span> <span class="hljs-string">'@/stores/index'</span> <span class="hljs-comment">// == createPinia()</span><br><span class="hljs-keyword">import</span> { useGolbalSysInfoStore } <span class="hljs-keyword">from</span> <span class="hljs-string">'@/stores/golbalSysInfo'</span><br><br><span class="hljs-keyword">const</span> golbalSysInfo = <span class="hljs-title function_">useGolbalSysInfoStore</span>(pinia)<br><span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">'customGlobalData------'</span>, golbalSysInfo.<span class="hljs-property">sysInfo</span>)<br></code></pre></td></tr></table></figure><p>需要响应式则如下操作,同 vue3 组件父子传值绑定双向原理相同</p><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-keyword">import</span> pinia <span class="hljs-keyword">from</span> <span class="hljs-string">'@/stores/index'</span> <span class="hljs-comment">// createPinia()</span><br><span class="hljs-keyword">import</span> { useCounterStore } <span class="hljs-keyword">from</span> <span class="hljs-string">'@/stores/counter'</span><br><span class="hljs-keyword">import</span> { storeToRefs } <span class="hljs-keyword">from</span> <span class="hljs-string">'pinia'</span><br><br><span class="hljs-keyword">const</span> counter = <span class="hljs-title function_">useCounterStore</span>(pinia)<br><span class="hljs-comment">// 用 storeToRefs 双向后再解构出 count</span><br><span class="hljs-keyword">let</span> { count } = <span class="hljs-title function_">storeToRefs</span>(counter) <span class="hljs-comment">// 此时count为响应式的</span><br></code></pre></td></tr></table></figure></li></ol><br><h4 id="第七步:安装-sass"><a href="#第七步:安装-sass" class="headerlink" title="第七步:安装 sass"></a>第七步:安装 sass</h4><figure class="highlight routeros"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs routeros">pnpm <span class="hljs-built_in">add</span> sass -D<br></code></pre></td></tr></table></figure><p>因为我们是使用 Vite 进行开发,所以只需要安装一下 sass 就可以了,不需要额外配置,不像 webpack 那样安装loader</p><br><h4 id="第八步:封装-uni-request-实现网络请求"><a href="#第八步:封装-uni-request-实现网络请求" class="headerlink" title="第八步:封装 uni.request 实现网络请求"></a>第八步:封装 <code>uni.request</code> 实现网络请求</h4><ol><li><h5 id="src-文件夹中创建-config-app-ts"><a href="#src-文件夹中创建-config-app-ts" class="headerlink" title="src 文件夹中创建 config/app.ts"></a>src 文件夹中创建 <code>config/app.ts</code></h5><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-comment">// app名字</span><br><span class="hljs-keyword">export</span> <span class="hljs-keyword">const</span> <span class="hljs-variable constant_">APP_NAME</span> = <span class="hljs-string">'廿壴博客'</span><br><span class="hljs-comment">// app的图片 // 静态资源的cos地址</span><br><span class="hljs-keyword">export</span> <span class="hljs-keyword">const</span> <span class="hljs-variable constant_">IMAGE_URL</span> = <span class="hljs-string">'https://blog.ganxb2.com/img/about/blog_log.png'</span><br><span class="hljs-comment">// mock请求地址</span><br><span class="hljs-keyword">export</span> <span class="hljs-keyword">const</span> <span class="hljs-variable constant_">HTTP_REQUEST_URL</span> = <span class="hljs-string">'http://localhost:3300'</span><br><span class="hljs-comment">// 请求头 - json</span><br><span class="hljs-keyword">export</span> <span class="hljs-keyword">const</span> <span class="hljs-variable constant_">HEADER</span> = {<br> <span class="hljs-string">'content-type'</span>: <span class="hljs-string">'application/json'</span>,<br>}<br><span class="hljs-comment">// 请求头 - 表单</span><br><span class="hljs-keyword">export</span> <span class="hljs-keyword">const</span> <span class="hljs-variable constant_">HEADERPARAMS</span> = {<br> <span class="hljs-string">'content-type'</span>: <span class="hljs-string">'application/x-www-form-urlencoded'</span>,<br>}<br><span class="hljs-comment">// tokenName</span><br><span class="hljs-keyword">export</span> <span class="hljs-keyword">const</span> <span class="hljs-variable constant_">TOKENNAME</span> = <span class="hljs-string">'Authorization'</span><br></code></pre></td></tr></table></figure></li><li><h5 id="src-文件夹中创建-utils-request-ts"><a href="#src-文件夹中创建-utils-request-ts" class="headerlink" title="src 文件夹中创建 utils/request.ts"></a>src 文件夹中创建 <code>utils/request.ts</code></h5><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br><span class="line">86</span><br><span class="line">87</span><br><span class="line">88</span><br><span class="line">89</span><br><span class="line">90</span><br><span class="line">91</span><br><span class="line">92</span><br><span class="line">93</span><br><span class="line">94</span><br><span class="line">95</span><br><span class="line">96</span><br><span class="line">97</span><br><span class="line">98</span><br><span class="line">99</span><br><span class="line">100</span><br><span class="line">101</span><br><span class="line">102</span><br><span class="line">103</span><br><span class="line">104</span><br><span class="line">105</span><br><span class="line">106</span><br><span class="line">107</span><br><span class="line">108</span><br><span class="line">109</span><br><span class="line">110</span><br><span class="line">111</span><br><span class="line">112</span><br><span class="line">113</span><br><span class="line">114</span><br><span class="line">115</span><br><span class="line">116</span><br><span class="line">117</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-comment">/* eslint-disable @typescript-eslint/ban-types */</span><br><span class="hljs-comment">// 获取常量</span><br><span class="hljs-keyword">import</span> { <span class="hljs-variable constant_">HEADER</span>, <span class="hljs-variable constant_">HEADERPARAMS</span>, <span class="hljs-variable constant_">TOKENNAME</span>, <span class="hljs-variable constant_">HTTP_REQUEST_URL</span> } <span class="hljs-keyword">from</span> <span class="hljs-string">'@/config/app'</span><br><span class="hljs-comment">// import { useCounterStore } from '@/stores/counter'</span><br><span class="hljs-comment">// import { useStore } from 'vuex'</span><br><span class="hljs-comment">// 导入申明</span><br><span class="hljs-keyword">import</span> { <span class="hljs-title class_">RequestOptionsMethod</span>, <span class="hljs-title class_">RequestOptionsMethodAll</span> } <span class="hljs-keyword">from</span> <span class="hljs-string">'./request.d'</span><br><span class="hljs-comment">/**</span><br><span class="hljs-comment"> * 发送请求</span><br><span class="hljs-comment"> */</span><br><br><span class="hljs-comment">// type handleBaseRequestType()</span><br><span class="hljs-keyword">function</span> <span class="hljs-title function_">handleBaseRequest</span>(<span class="hljs-params"></span><br><span class="hljs-params"> url: <span class="hljs-built_in">string</span>,</span><br><span class="hljs-params"> method: RequestOptionsMethod,</span><br><span class="hljs-params"> data: <span class="hljs-built_in">any</span>,</span><br><span class="hljs-params"> { noAuth = <span class="hljs-literal">false</span>, noVerify = <span class="hljs-literal">false</span> }: <span class="hljs-built_in">any</span>,</span><br><span class="hljs-params"> params: <span class="hljs-built_in">unknown</span></span><br><span class="hljs-params"></span>) {<br> <span class="hljs-comment">// const store = useStore()</span><br> <span class="hljs-comment">// const token = store.state.app.token</span><br> <span class="hljs-comment">// 从pinia中获取</span><br> <span class="hljs-keyword">const</span> token = <span class="hljs-string">'islogin'</span><br> <span class="hljs-keyword">const</span> <span class="hljs-title class_">Url</span> = <span class="hljs-variable constant_">HTTP_REQUEST_URL</span><br> <span class="hljs-keyword">let</span> header = <span class="hljs-title class_">JSON</span>.<span class="hljs-title function_">parse</span>(<span class="hljs-title class_">JSON</span>.<span class="hljs-title function_">stringify</span>(<span class="hljs-variable constant_">HEADER</span>))<br><br> <span class="hljs-comment">// 如果传了参数 => 表单</span><br> <span class="hljs-keyword">if</span> (params != <span class="hljs-literal">undefined</span>) {<br> header = <span class="hljs-variable constant_">HEADERPARAMS</span><br> }<br> <span class="hljs-comment">// 如果未授权</span><br> <span class="hljs-keyword">if</span> (!noAuth) {<br> <span class="hljs-comment">// 并且token也是false</span><br> <span class="hljs-keyword">if</span> (!token) {<br> <span class="hljs-comment">// 提示未登录</span><br> <span class="hljs-keyword">return</span> <span class="hljs-title class_">Promise</span>.<span class="hljs-title function_">reject</span>({<br> <span class="hljs-attr">msg</span>: <span class="hljs-string">'未登录'</span>,<br> })<br> }<br> <span class="hljs-comment">// 有token并且不是Null 则拼token给请求头</span><br> <span class="hljs-keyword">if</span> (token && token !== <span class="hljs-literal">null</span>) header[<span class="hljs-variable constant_">TOKENNAME</span>] = <span class="hljs-string">'Bearer '</span> + token<br> }<br><br> <span class="hljs-comment">// 返回封装请求</span><br> <span class="hljs-comment">// resolve: (value: unknown) => void, reject: (reason?: any) => void) => void</span><br> <span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> <span class="hljs-title class_">Promise</span>((reslove, reject): <span class="hljs-function"><span class="hljs-params">any</span> =></span> {<br> <span class="hljs-comment">// 加载提示</span><br> uni.<span class="hljs-title function_">showLoading</span>({<br> <span class="hljs-attr">title</span>: <span class="hljs-string">'加载中'</span>,<br> <span class="hljs-attr">mask</span>: <span class="hljs-literal">true</span>,<br> })<br><br> <span class="hljs-comment">// uni请求</span><br> uni.<span class="hljs-title function_">request</span>({<br> <span class="hljs-comment">// 常量Url拼上调用时传入的不同接口</span><br> <span class="hljs-attr">url</span>: <span class="hljs-title class_">Url</span> + url,<br> <span class="hljs-attr">method</span>: method || <span class="hljs-string">'GET'</span>,<br> <span class="hljs-attr">header</span>: header,<br> <span class="hljs-attr">data</span>: data || {},<br> <span class="hljs-attr">success</span>: <span class="hljs-function">(<span class="hljs-params">res: <span class="hljs-built_in">any</span></span>) =></span> {<br> <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">'uni请求封装 -------'</span>, res)<br> <span class="hljs-comment">// 成功关闭loading</span><br> uni.<span class="hljs-title function_">hideLoading</span>()<br> <span class="hljs-comment">// 如果有token并且token不为null则修改状态管理的token</span><br> res.<span class="hljs-property">data</span>.<span class="hljs-property">token</span> && res.<span class="hljs-property">data</span>.<span class="hljs-property">token</span> !== <span class="hljs-string">'null'</span> && <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">'修改状态管理的token'</span>)<br> <span class="hljs-comment">// store.commit('LOGIN', {</span><br> <span class="hljs-comment">// token: res.data.token,</span><br> <span class="hljs-comment">// })</span><br> <span class="hljs-comment">// console.log('noVerify ------', noVerify, res)</span><br> <span class="hljs-comment">// 如果未验证抛出返回对象</span><br> <span class="hljs-keyword">if</span> (noVerify) {<br> <span class="hljs-title function_">reslove</span>(res)<br> } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (res.<span class="hljs-property">statusCode</span> === <span class="hljs-number">200</span>) {<br> <span class="hljs-comment">// console.log('statusCode ------', res.statusCode)</span><br> <span class="hljs-comment">// 如果验证了并且 code = 200 则抛出返回的data</span><br> <span class="hljs-title function_">reslove</span>(res.<span class="hljs-property">data</span>)<br> } <span class="hljs-keyword">else</span> {<br> <span class="hljs-comment">// code 不是200也没有验证标识抛出错误</span><br> <span class="hljs-title function_">reject</span>(res.<span class="hljs-property">data</span>.<span class="hljs-property">message</span> || <span class="hljs-string">'系统错误'</span>)<br> }<br> },<br> <span class="hljs-comment">// 请求失败</span><br> <span class="hljs-attr">fail</span>: <span class="hljs-function"><span class="hljs-params">msg</span> =></span> {<br> uni.<span class="hljs-title function_">hideLoading</span>()<br> <span class="hljs-title function_">reject</span>(<span class="hljs-string">'请求失败'</span>)<br> },<br> })<br> })<br>}<br><br><span class="hljs-comment">// const request: Request = {}</span><br><span class="hljs-comment">// 请求类型数组</span><br><span class="hljs-keyword">const</span> <span class="hljs-attr">requestOptions</span>: <span class="hljs-title class_">RequestOptionsMethodAll</span>[] = [<br> <span class="hljs-string">'options'</span>,<br> <span class="hljs-string">'get'</span>,<br> <span class="hljs-string">'post'</span>,<br> <span class="hljs-string">'put'</span>,<br> <span class="hljs-string">'head'</span>,<br> <span class="hljs-string">'delete'</span>,<br> <span class="hljs-string">'trace'</span>,<br> <span class="hljs-string">'connect'</span>,<br>]<br><span class="hljs-comment">// 自定义ts的校验 methods</span><br><span class="hljs-keyword">type</span> <span class="hljs-title class_">Methods</span> = (<span class="hljs-keyword">typeof</span> requestOptions)[<span class="hljs-built_in">number</span>]<br><span class="hljs-comment">// 定义request对象去接封装的请求(TS申明:如果在Methods中的一项)</span><br><span class="hljs-keyword">const</span> <span class="hljs-attr">request</span>: { [key <span class="hljs-keyword">in</span> <span class="hljs-title class_">Methods</span>]?: <span class="hljs-title class_">Function</span> } = {}<br><br><span class="hljs-comment">// 循环请求类型数组</span><br>requestOptions.<span class="hljs-title function_">forEach</span>(<span class="hljs-function"><span class="hljs-params">method</span> =></span> {<br> <span class="hljs-comment">// item</span><br> <span class="hljs-keyword">const</span> m = method.<span class="hljs-title function_">toUpperCase</span>() <span class="hljs-keyword">as</span> <span class="hljs-built_in">unknown</span> <span class="hljs-keyword">as</span> <span class="hljs-title class_">RequestOptionsMethod</span><br> <span class="hljs-comment">// ge: { get(){} }</span><br> request[method] = <span class="hljs-function">(<span class="hljs-params">api: <span class="hljs-built_in">string</span>, data: <span class="hljs-built_in">any</span>, opt: RequestOptionsMethod, params: <span class="hljs-built_in">unknown</span></span>) =></span><br> <span class="hljs-title function_">handleBaseRequest</span>(api, m, data, opt || {}, params)<br>})<br><br><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> request<br></code></pre></td></tr></table></figure></li><li><h5 id="src-文件夹中创建-api-user-ts"><a href="#src-文件夹中创建-api-user-ts" class="headerlink" title="src 文件夹中创建 api/user.ts"></a>src 文件夹中创建 <code>api/user.ts</code></h5><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-keyword">import</span> request <span class="hljs-keyword">from</span> <span class="hljs-string">'@/utils/request'</span><br><span class="hljs-keyword">import</span> { userInfoType } <span class="hljs-keyword">from</span> <span class="hljs-string">'./user.d'</span><br><br><span class="hljs-comment">/**</span><br><span class="hljs-comment"> * 获取用户信息</span><br><span class="hljs-comment"> * 考虑错误返回 还要联合申明,暂时只写正确返回</span><br><span class="hljs-comment"> */</span><br><span class="hljs-keyword">export</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">fetchUserInfo</span>(<span class="hljs-params"></span>): <span class="hljs-title class_">Promise</span><userInfoType> {<br> <span class="hljs-keyword">return</span> request?.<span class="hljs-property">get</span>?.(<span class="hljs-string">'/user/userInfo'</span>, {}, { <span class="hljs-attr">noAuth</span>: <span class="hljs-literal">true</span> })<br>}<br></code></pre></td></tr></table></figure></li><li><h5 id="调用-1"><a href="#调用-1" class="headerlink" title="调用"></a>调用</h5><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-keyword">import</span> { fetchUserInfo } <span class="hljs-keyword">from</span> <span class="hljs-string">'@/api/user'</span><br>...<br><span class="hljs-title function_">fetchUserInfo</span>()<br> .<span class="hljs-title function_">then</span>(<span class="hljs-function">(<span class="hljs-params">r: userInfoType</span>) =></span> {<br> <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">'用户信息---'</span>, r)<br> })<br> .<span class="hljs-title function_">catch</span>(<span class="hljs-function">(<span class="hljs-params">err: <span class="hljs-built_in">any</span></span>) =></span> <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(err))<br></code></pre></td></tr></table></figure></li></ol><br><h4 id="第九步:利用-nodejs-koa-配置-mock-数据服务器"><a href="#第九步:利用-nodejs-koa-配置-mock-数据服务器" class="headerlink" title="第九步:利用 nodejs - koa 配置 mock 数据服务器"></a>第九步:利用 nodejs - koa 配置 mock 数据服务器</h4><p>因为这个服务是集成到当前 uni-app 中,所以不用把依赖装到 <code>dependencies</code></p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-attr">"devDependencies"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> <br> <span class="hljs-attr">"koa"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.13.0"</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-attr">"koa-body"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^4.2.0"</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-comment">// koa-logger提供了输出请求日志的功能,包括请求的url、状态码、响应时间、响应体大小等信息 logger返回的信息丢给log4js </span><br> <span class="hljs-attr">"koa-logger"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^3.2.1"</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-attr">"koa-router"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^10.0.0"</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-attr">"koa2-cors"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.0.6"</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-comment">// Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。 </span><br> <span class="hljs-attr">"lodash"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^4.17.20"</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-comment">// 日志 </span><br> <span class="hljs-attr">"log4js"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^6.3.0"</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-comment">// Faker 模块用于生成伪造数据,不仅伪造数据,感染组织良好的伪造数据 </span><br> <span class="hljs-attr">"faker"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"5.1.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-comment">// 是 ES7 的一个提案,它主要用来在声明的时候添加和读取元数据。 </span><br> <span class="hljs-attr">"reflect-metadata"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^0.1.13"</span> <br> <span class="hljs-attr">"@types/koa"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.11.6"</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-attr">"@types/koa-logger"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^3.1.1"</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-attr">"@types/koa-router"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^7.4.1"</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-attr">"@types/koa2-cors"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.0.1"</span><span class="hljs-punctuation">,</span> <br> <span class="hljs-comment">// faker@6+ 已经默认带了申明不需要安装 @types/faker@6.6.9: This is a stub types definition. faker provides its own type definitions, so you do not need this installed. </span><br> <span class="hljs-attr">"@types/faker"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"5.1.5"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"ts-node-dev"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.0.0"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"tslib"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"^2.5.0"</span><span class="hljs-punctuation">,</span><br><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure><ol><li><h5 id="安装依赖"><a href="#安装依赖" class="headerlink" title="安装依赖"></a>安装依赖</h5><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm add ts<span class="hljs-literal">-node-dev</span> <span class="hljs-literal">-D</span><br>pnpm add koa <span class="hljs-literal">-D</span><br>pnpm add koa<span class="hljs-literal">-body</span> <span class="hljs-literal">-D</span><br>pnpm add koa<span class="hljs-literal">-logger</span> <span class="hljs-literal">-D</span><br>pnpm add koa<span class="hljs-literal">-router</span> <span class="hljs-literal">-D</span><br>pnpm add koa2<span class="hljs-literal">-cors</span> <span class="hljs-literal">-D</span><br>// 一个一致性、模块化、高性能的 JavaScript 实用工具库<br>pnpm add lodash <span class="hljs-literal">-D</span><br>// 日志<br>pnpm add log4js <span class="hljs-literal">-D</span><br>// ES7 的一个提案,它主要用来在声明的时候添加和读取元数据。 <br>pnpm add reflect<span class="hljs-literal">-metadata</span> <span class="hljs-literal">-D</span><br>// 终端打印信息增加个性化颜色 特别注意 chalk 一定要指定版本<br>pnpm add chalk@<span class="hljs-number">4.1</span>.<span class="hljs-number">2</span> <span class="hljs-literal">-D</span><br>// 生成伪造数据 特别注意 faker 一定要指定版本<br>pnpm add faker@<span class="hljs-number">5.1</span>.<span class="hljs-number">0</span> <span class="hljs-literal">-D</span><br>pnpm add @types/faker@<span class="hljs-number">5.1</span>.<span class="hljs-number">5</span> <span class="hljs-literal">-D</span><br>pnpm add @types/koa <span class="hljs-literal">-D</span><br>pnpm add @types/koa<span class="hljs-literal">-logger</span> <span class="hljs-literal">-D</span><br>pnpm add @types/koa<span class="hljs-literal">-router</span> <span class="hljs-literal">-D</span><br>pnpm add @types/koa2<span class="hljs-literal">-cors</span> <span class="hljs-literal">-D</span><br>pnpm add @types/koa2<span class="hljs-literal">-cors</span> <span class="hljs-literal">-D</span><br>pnpm add tslib <span class="hljs-literal">-D</span><br></code></pre></td></tr></table></figure></li><li><h5 id="贴入小波仓库中的-mock-文件夹"><a href="#贴入小波仓库中的-mock-文件夹" class="headerlink" title="贴入小波仓库中的 mock 文件夹"></a>贴入小波仓库中的 mock 文件夹</h5></li><li><h5 id="package-json-里配置-mock-服务器启动命令"><a href="#package-json-里配置-mock-服务器启动命令" class="headerlink" title="package.json 里配置 mock 服务器启动命令"></a><code>package.json</code> 里配置 mock 服务器启动命令</h5><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-attr">"scripts"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"mock"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"cd mock && ts-node-dev mock.ts"</span><br><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure></li><li><h5 id="开启-mock-服务"><a href="#开启-mock-服务" class="headerlink" title="开启 mock 服务"></a>开启 mock 服务</h5><p>新建个终端窗口,然后切到 uni-app 工程项目文件夹执行以下代码</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs powershell"><span class="hljs-built_in">cd</span> your uni<span class="hljs-literal">-app</span><br>pnpm mock<br></code></pre></td></tr></table></figure></li></ol><br><blockquote><p>你可能遇到错误请参考如下解决方案</p><p><span class="label label-danger">报错</span></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">[<span class="hljs-type">INFO</span>] <span class="hljs-number">17</span>:<span class="hljs-number">13</span>:<span class="hljs-number">02</span> ts<span class="hljs-literal">-node-dev</span> ver. <span class="hljs-number">2.0</span>.<span class="hljs-number">0</span> (<span class="hljs-keyword">using</span> ts-node ver. 10.9.1, <span class="hljs-keyword">type</span>script ver. 4.9.5)Error [ERR_REQUIRE_ESM]: require() of ES <span class="hljs-keyword">Module</span> C:\myWeb\vue3-vite-uniapp\node_<span class="hljs-keyword">module</span>s\.pnpm\chalk@5.2.0\node_<span class="hljs-keyword">module</span>s\chalk\source\index.js from C:\myWeb\vue3-vite-uniapp\mock\mock.ts not supported.Instead change the require of index.js in C:\myWeb\vue3-vite-uniapp\mock\mock.ts to a dynamic import() which is available in all CommonJS <span class="hljs-keyword">module</span>s. at require.extensions..jsx.require.extensions..js (C:\Users\ganxb\AppData\Local\Temp\ts-node-dev-hook-33103583567897243.js:114:20) at Object.nodeDevHook [as .js] (C:\myWeb\vue3-vite-uniapp\node_<span class="hljs-keyword">module</span>s\.pnpm\ts-node-dev@2.0.0_67kvwwhfsxe4y463wcu4dtvggu\node_<span class="hljs-keyword">module</span>s\ts-node-dev\lib\hook.js:63:13) at Object.<anonymous> (C:\myWeb\vue3-vite-uniapp\mock\mock.ts:12:41) at <span class="hljs-keyword">Module</span>._compile (C:\myWeb\vue3-vite-uniapp\node_<span class="hljs-keyword">module</span>s\.pnpm\source-map-support@0.5.21\node_<span class="hljs-keyword">module</span>s\source-map-support\source-map-support.js:568:25) at <span class="hljs-keyword">Module</span>.m._compile (C:\Users\ganxb\AppData\Local\Temp\ts-node-dev-hook-33103583567897243.js:69:33) at require.extensions..jsx.require.extensions..js (C:\Users\ganxb\AppData\Local\Temp\ts-node-dev-hook-33103583567897243.js:114:20) at require.extensions.<computed> (C:\Users\ganxb\AppData\Local\Temp\ts-node-dev-hook-33103583567897243.js:71:20) at Object.nodeDevHook [as .ts] (C:\myWeb\vue3-vite-uniapp\node_<span class="hljs-keyword">module</span>s\.pnpm\ts-node-dev@2.0.0_67kvwwhfsxe4y463wcu4dtvggu\node_<span class="hljs-keyword">module</span>s\ts-node-dev\lib\hook.js:63:13) at Object.<anonymous> (C:\myWeb\vue3-vite-uniapp\node_<span class="hljs-keyword">module</span>s\.pnpm\ts-node-dev@2.0.0_67kvwwhfsxe4y463wcu4dtvggu\node_<span class="hljs-keyword">module</span>s\ts-node-dev\lib\wrap.js:104:1) at <span class="hljs-keyword">Module</span>._compile (C:\myWeb\vue3-vite-uniapp\node_<span class="hljs-keyword">module</span>s\.pnpm\source-map-support@0.5.21\node_<span class="hljs-keyword">module</span>s\source-map-support\source-map-support.js:568:25) at Object.require.extensions..jsx.require.extensions..js (C:\Users\ganxb\AppData\Local\Temp\ts-node-dev-hook-33103583567897243.js:95:24)[ERROR] 17:13:08 Error: require() of ES <span class="hljs-keyword">Module</span> C:\myWeb\vue3-vite-uniapp\node_<span class="hljs-keyword">module</span>s\.pnpm\chalk@5.2.0\node_<span class="hljs-keyword">module</span>s\chalk\source\index.js from C:\myWeb\vue3-vite-uniapp\mock\mock.ts not supported.Instead change the require of index.js in C:\myWeb\vue3-vite-uniapp\mock\mock.ts to a dynamic import() which is available in all CommonJS <span class="hljs-keyword">module</span>s.<br></code></pre></td></tr></table></figure><p>原因:因为chalk版本问题</p><p>解决方案:降到4.1.2</p><br><p><span class="label label-danger">报错</span></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">@prefix(<span class="hljs-string">'/banner'</span>)⨯ Unable to compile TypeScript:controller/banner.ts(<span class="hljs-number">3</span>,<span class="hljs-number">1</span>): error TS2354: This syntax requires an imported helper but module <span class="hljs-string">'tslib'</span> cannot be found.<br></code></pre></td></tr></table></figure><p>解决方案:</p><p>安装</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm add tslib <span class="hljs-literal">-D</span><br></code></pre></td></tr></table></figure><p>mock 后端服务文件夹中 <code>tsconfig.json</code> 增加</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"compilerOptions"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> ...<br> <span class="hljs-attr">"paths"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"tslib"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"node_modules/tslib/tslib.d.ts"</span><span class="hljs-punctuation">]</span><br> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br> <span class="hljs-punctuation">}</span><br><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure><br><p><span class="label label-danger">报错</span></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">Cannot find module <span class="hljs-string">'C:\myWeb\vue3-vite-uniapp\node_modules\faker\index.js'</span>. Please verify that the package.json has a valid <span class="hljs-string">"main"</span> entry<br></code></pre></td></tr></table></figure><p>解决方案:卸载最新版本重新安装指定版本</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm remove faker<br>pnpm remove @types/faker<br><br>pnpm add faker@<span class="hljs-number">5.1</span>.<span class="hljs-number">0</span> <br>pnpm add @types/faker@<span class="hljs-number">5.1</span>.<span class="hljs-number">5</span><br></code></pre></td></tr></table></figure></blockquote><br><h4 id="第十步:配置-jest-单元测试"><a href="#第十步:配置-jest-单元测试" class="headerlink" title="第十步:配置 jest 单元测试"></a>第十步:配置 jest 单元测试</h4><ol><li><h5 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h5><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm add <span class="hljs-literal">-D</span> @babel/core @babel/p<span class="hljs-built_in">reset-env</span> @testing<span class="hljs-literal">-library</span>/jest<span class="hljs-literal">-dom</span> @types/jest @vue/<span class="hljs-built_in">test-utils</span>@next babel<span class="hljs-literal">-jest</span>@<span class="hljs-number">26.6</span>.<span class="hljs-number">3</span> ts<span class="hljs-literal">-jest</span>@<span class="hljs-number">26.5</span>.<span class="hljs-number">6</span> vue<span class="hljs-literal">-jest</span>@next jest@<span class="hljs-number">26.6</span>.<span class="hljs-number">3</span><br></code></pre></td></tr></table></figure></li><li><h5 id="项目根目录创建-jest-config-js"><a href="#项目根目录创建-jest-config-js" class="headerlink" title="项目根目录创建 jest.config.js"></a>项目根目录创建 <code>jest.config.js</code></h5><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-keyword">const</span> path = <span class="hljs-built_in">require</span>(<span class="hljs-string">'path'</span>)<br><br><span class="hljs-variable language_">module</span>.<span class="hljs-property">exports</span> = {<br> <span class="hljs-attr">rootDir</span>: path.<span class="hljs-title function_">resolve</span>(__dirname),<br> <span class="hljs-attr">clearMocks</span>: <span class="hljs-literal">true</span>,<br> <span class="hljs-attr">coverageDirectory</span>: <span class="hljs-string">'coverage'</span>,<br> <span class="hljs-attr">coverageProvider</span>: <span class="hljs-string">'v8'</span>,<br> <span class="hljs-attr">moduleFileExtensions</span>: [<span class="hljs-string">'vue'</span>, <span class="hljs-string">'js'</span>, <span class="hljs-string">'json'</span>, <span class="hljs-string">'jsx'</span>, <span class="hljs-string">'ts'</span>, <span class="hljs-string">'tsx'</span>, <span class="hljs-string">'node'</span>],<br> <span class="hljs-comment">// 别名设置 src下components里组件 <rootDir>/src/components/$1</span><br> <span class="hljs-attr">moduleNameMapper</span>: {<br> <span class="hljs-string">'@/(.*)$'</span>: <span class="hljs-string">'<rootDir>/src/$1'</span>,<br> },<br> <span class="hljs-attr">preset</span>: <span class="hljs-string">'ts-jest'</span>,<br> <span class="hljs-attr">testEnvironment</span>: <span class="hljs-string">'jsdom'</span>,<br> <span class="hljs-comment">// 测试文件 自己写的</span><br> <span class="hljs-attr">testMatch</span>: [<span class="hljs-string">'<rootDir>/tests/unit/*.spec.ts?(x)'</span>],<br> <span class="hljs-attr">transform</span>: {<br> <span class="hljs-string">'^.+\\.vue$'</span>: <span class="hljs-string">'vue-jest'</span>,<br> <span class="hljs-string">'^.+\\js$'</span>: <span class="hljs-string">'babel-jest'</span>,<br> <span class="hljs-string">'^.+\\.(t|j)sx?$'</span>: <span class="hljs-string">'ts-jest'</span>,<br> },<br>}<br></code></pre></td></tr></table></figure></li><li><h5 id="配置-tsconfig-json"><a href="#配置-tsconfig-json" class="headerlink" title="配置 tsconfig.json"></a>配置 <code>tsconfig.json</code></h5><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-string">"compilerOptions"</span>: {<br> <span class="hljs-string">"types"</span>: [<span class="hljs-string">"@dcloudio/types"</span>, <span class="hljs-string">"jest"</span>],<br>}<br></code></pre></td></tr></table></figure></li><li><h5 id="项目根目录中创建实例-tests-unit-HelloWorld-spec-ts"><a href="#项目根目录中创建实例-tests-unit-HelloWorld-spec-ts" class="headerlink" title="项目根目录中创建实例 tests/unit/HelloWorld.spec.ts"></a>项目根目录中创建实例 <code>tests/unit/HelloWorld.spec.ts</code></h5><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-keyword">import</span> { mount } <span class="hljs-keyword">from</span> <span class="hljs-string">'@vue/test-utils'</span><br><span class="hljs-comment">// 导入需要测试页面</span><br><span class="hljs-keyword">import</span> <span class="hljs-title class_">HelloWorld</span> <span class="hljs-keyword">from</span> <span class="hljs-string">'@/components/counter/counter.vue'</span><br><span class="hljs-keyword">import</span> { useCounterStore } <span class="hljs-keyword">from</span> <span class="hljs-string">'../request'</span><br><br><span class="hljs-title function_">test</span>(<span class="hljs-string">'add stores count'</span>, <span class="hljs-keyword">async</span> () => {<br> <span class="hljs-comment">// 获取整个wrapper</span><br> <span class="hljs-keyword">const</span> wrapper = <span class="hljs-title function_">mount</span>(<span class="hljs-title class_">HelloWorld</span>)<br><br> <span class="hljs-comment">// 获取dom: title的text判断是不是'0'</span><br> <span class="hljs-title function_">expect</span>(wrapper.<span class="hljs-title function_">find</span>(<span class="hljs-string">'.title'</span>).<span class="hljs-title function_">text</span>()).<span class="hljs-title function_">toBe</span>(<span class="hljs-string">'0'</span>)<br> <span class="hljs-comment">// 触发按钮点击</span><br> <span class="hljs-keyword">await</span> wrapper.<span class="hljs-title function_">find</span>(<span class="hljs-string">'.button'</span>).<span class="hljs-title function_">trigger</span>(<span class="hljs-string">'tap'</span>)<br> <span class="hljs-keyword">const</span> acount = <span class="hljs-title function_">useCounterStore</span>()<br> <span class="hljs-title function_">expect</span>(acount.<span class="hljs-property">count</span>).<span class="hljs-title function_">toBe</span>(<span class="hljs-number">1</span>)<br> <span class="hljs-comment">// 再获取dom: title的text判断是不是'1'</span><br> <span class="hljs-title function_">expect</span>(wrapper.<span class="hljs-title function_">find</span>(<span class="hljs-string">'.title'</span>).<span class="hljs-title function_">text</span>()).<span class="hljs-title function_">toBe</span>(<span class="hljs-string">'1'</span>)<br>})<br></code></pre></td></tr></table></figure></li><li><h5 id="package-json-添加命令"><a href="#package-json-添加命令" class="headerlink" title="package.json 添加命令"></a><code>package.json</code> 添加命令</h5><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"scripts"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> ...<br> <span class="hljs-attr">"test"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"jest"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"test:unit"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"jest --coverage"</span><br> <span class="hljs-punctuation">}</span><br><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm test<br><br>// 输出结果<br>> uni<span class="hljs-literal">-preset-vue</span>@<span class="hljs-number">0.0</span>.<span class="hljs-number">0</span> test C:\myWeb\uniapp_vue3_vite_pinia<br>> jest<br><br> PASS tests/unit/HelloWorld.spec.ts<br> PASS tests/unit/testIndex.spec.ts (<span class="hljs-number">9.762</span> s)<br> ● Console<br><br> console.log<br> <span class="hljs-number">111</span><br><br> at Object.<anonymous> (tests/unit/testIndex.spec.ts:<span class="hljs-number">34</span>:<span class="hljs-number">11</span>)<br><br><br>Test Suites: <span class="hljs-number">2</span> passed, <span class="hljs-number">2</span> total<br>Tests: <span class="hljs-number">2</span> passed, <span class="hljs-number">2</span> total<br>Snapshots: <span class="hljs-number">0</span> total<br>Time: <span class="hljs-number">13.767</span> s, estimated <span class="hljs-number">19</span> s<br>Ran all test suites<br></code></pre></td></tr></table></figure><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm test:unit<br><br>// 输出结果<br>> uni<span class="hljs-literal">-preset-vue</span>@<span class="hljs-number">0.0</span>.<span class="hljs-number">0</span> test:unit C:\myWeb\uniapp_vue3_vite_pinia<br>> jest <span class="hljs-literal">--coverage</span><br><br> PASS tests/unit/testIndex.spec.ts<br> ● Console<br><br> console.log<br> <span class="hljs-number">111</span><br><br> at Object.<anonymous> (tests/unit/testIndex.spec.ts:<span class="hljs-number">34</span>:<span class="hljs-number">11</span>)<br><br> PASS tests/unit/HelloWorld.spec.ts<br><span class="hljs-literal">------------------------</span>|<span class="hljs-literal">---------</span>|<span class="hljs-literal">----------</span>|<span class="hljs-literal">---------</span>|<span class="hljs-literal">---------</span>|<span class="hljs-literal">-------------------</span><br>File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line <span class="hljs-comment">#s</span><br><span class="hljs-literal">------------------------</span>|<span class="hljs-literal">---------</span>|<span class="hljs-literal">----------</span>|<span class="hljs-literal">---------</span>|<span class="hljs-literal">---------</span>|<span class="hljs-literal">-------------------</span><br>All files | <span class="hljs-number">97.11</span> | <span class="hljs-number">100</span> | <span class="hljs-number">40</span> | <span class="hljs-number">97.11</span> |<br> src/components/counter | <span class="hljs-number">100</span> | <span class="hljs-number">100</span> | <span class="hljs-number">100</span> | <span class="hljs-number">100</span> |<br> counter.vue | <span class="hljs-number">100</span> | <span class="hljs-number">100</span> | <span class="hljs-number">100</span> | <span class="hljs-number">100</span> |<br> src/stores | <span class="hljs-number">96.55</span> | <span class="hljs-number">100</span> | <span class="hljs-number">50</span> | <span class="hljs-number">96.55</span> |<br> counter.ts | <span class="hljs-number">96.15</span> | <span class="hljs-number">100</span> | <span class="hljs-number">50</span> | <span class="hljs-number">96.15</span> | <span class="hljs-number">12</span><br> index.ts | <span class="hljs-number">100</span> | <span class="hljs-number">100</span> | <span class="hljs-number">100</span> | <span class="hljs-number">100</span> |<br> tests | <span class="hljs-number">95</span> | <span class="hljs-number">100</span> | <span class="hljs-number">0</span> | <span class="hljs-number">95</span> |<br> request.ts | <span class="hljs-number">95</span> | <span class="hljs-number">100</span> | <span class="hljs-number">0</span> | <span class="hljs-number">95</span> | <span class="hljs-number">20</span>,<span class="hljs-number">26</span><br><span class="hljs-literal">------------------------</span>|<span class="hljs-literal">---------</span>|<span class="hljs-literal">----------</span>|<span class="hljs-literal">---------</span>|<span class="hljs-literal">---------</span>|<span class="hljs-literal">-------------------</span><br><br>Test Suites: <span class="hljs-number">2</span> passed, <span class="hljs-number">2</span> total<br>Tests: <span class="hljs-number">2</span> passed, <span class="hljs-number">2</span> total<br>Snapshots: <span class="hljs-number">0</span> total<br>Time: <span class="hljs-number">9.287</span> s, estimated <span class="hljs-number">10</span> s<br>Ran all test suites.<br></code></pre></td></tr></table></figure><blockquote><p><span class="label label-info">提示</span></p><p>执行查询覆盖命令后同时会在项目根目录创建coverage 文件夹,<code>coverage/lcov-report/index.html</code> 可以网页UI模式查看。</p></blockquote></li></ol><br><blockquote><p>你可能遇到错误请参考如下解决方案</p><p><span class="label label-danger">报错</span></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">Test environment jest<span class="hljs-literal">-environment-jsdom</span> cannot be found.<br></code></pre></td></tr></table></figure><p>原因:由于 jest 版本不对</p><p>解决方案:安装</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm add jest<span class="hljs-literal">-environment-jsdom</span> <span class="hljs-literal">-D</span><br></code></pre></td></tr></table></figure><br><p><span class="label label-danger">报错</span></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">TypeError: Cannot destructure property <span class="hljs-string">'config'</span> of <span class="hljs-string">'undefined'</span> as it is undefined.<br></code></pre></td></tr></table></figure><p>原因:同上,由于 jest 版本不对</p><p>解决方案:</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs powershell">换 <span class="hljs-string">"jest"</span>: <span class="hljs-string">"^26.6.3"</span><br>换 <span class="hljs-string">"ts-jest"</span>: <span class="hljs-string">"^26.5.6"</span><br>换 babel<span class="hljs-literal">-jest</span>@<span class="hljs-number">26.3</span>.<span class="hljs-number">0</span><br></code></pre></td></tr></table></figure></blockquote><br><h4 id="第十一步:挂载-uni-ui"><a href="#第十一步:挂载-uni-ui" class="headerlink" title="第十一步:挂载 uni-ui"></a>第十一步:挂载 uni-ui</h4><ol><li><h5 id="安装-1"><a href="#安装-1" class="headerlink" title="安装"></a>安装</h5><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm add @dcloudio/uni<span class="hljs-literal">-ui</span><br></code></pre></td></tr></table></figure></li><li><h5 id="项目根目录创建并配置-vue-config-js"><a href="#项目根目录创建并配置-vue-config-js" class="headerlink" title="项目根目录创建并配置 vue.config.js"></a>项目根目录创建并配置 <code>vue.config.js</code></h5><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-comment">// vue.config.js</span><br><span class="hljs-variable language_">module</span>.<span class="hljs-property">exports</span> = {<br> <span class="hljs-attr">transpileDependencies</span>: [<span class="hljs-string">'@dcloudio/uni-ui'</span>],<br>}<br></code></pre></td></tr></table></figure></li><li><h5 id="easycom-配置-src-pages-json"><a href="#easycom-配置-src-pages-json" class="headerlink" title="easycom 配置 src/pages.json"></a>easycom 配置 <code>src/pages.json</code></h5><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"easycom"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-attr">"autoscan"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"custom"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-comment">// uni-ui 规则如下配置</span><br> <span class="hljs-attr">"^uni-(.*)"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"</span><br> <span class="hljs-punctuation">}</span><br> <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"pages"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-punctuation">]</span><br> ...<br><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure><blockquote><p><span class="label label-info">提示</span></p><p>easycom规则例子:</p><p>组件文件夹参考此路径创建组件 <code>src/components/uni-nav-bar/uni-nav-bar.vue</code></p><p>页面则不需要 <code>component</code> 中导入</p><p>直接 <code><template></code>书写即可: <code><uni-nav-bar></uni-nav-bar></code></p></blockquote></li></ol><br><h4 id="第十二步:HBuildX-配置小程序渲染"><a href="#第十二步:HBuildX-配置小程序渲染" class="headerlink" title="第十二步:HBuildX 配置小程序渲染"></a>第十二步:HBuildX 配置小程序渲染</h4><ol><li><p><code>manifest.json</code> 点击后基础配置–> uni-app 应用标识(AppID):注册dcloud自动生成</p></li><li><p>基础配置–>微信小程序配置–>微信小程序AppID</p></li><li><p>工具–>设置–>运行配置–>微信开发者工具路径,填入自己安装的路径</p></li><li><p>微信开发工具—设置–通用设置–安全–服务端口(最好去安装目录里启动后操作)</p></li></ol><blockquote><p><span class="label label-info">提示</span></p><ol><li>生成后项目根目录会创建 <code>.hbuilderx</code> 文件夹</li><li>如果要用手机直接预览,需要去把 <code>src/manifest.json</code> 中 <code>"scope.userLocation": { "desc": ""}</code> 注释哈,uni-app默认把地域调用打开了。但是初始项目未调用微信地域 api</li><li>如果是用 cli 命令启动项目,微信开发工具中需要导入最后打包成功的文件夹而不是整个源码文件,不然会报错 无法找到 <code>app.json</code>, 例如 <code>dist/dev/mp-weixin</code></li></ol></blockquote><br><h4 id="第十三步:配置多环境-api-接口"><a href="#第十三步:配置多环境-api-接口" class="headerlink" title="第十三步:配置多环境 api 接口"></a>第十三步:配置多环境 api 接口</h4><ol><li><p><code>src/config</code> 文件夹分别创建 <code>.env.dev.ts</code>、<code>.env.pre.ts</code>、<code>.env.pro.ts</code>、<code>.env.test.ts</code>、<code>env.ts</code></p><p><code>.env.x.ts</code> 内容就是不同环境将要访问的 api 地址</p><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> {<br> <span class="hljs-comment">// 也就是你不同的环境将要访问的不同的服务器</span><br> <span class="hljs-attr">BASE_API</span>: <span class="hljs-string">'http://localhost:3300'</span>,<br> <span class="hljs-attr">ENV</span>: <span class="hljs-string">'dev'</span>,<br>}<br></code></pre></td></tr></table></figure><p><code>env.ts</code></p><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-keyword">import</span> dev <span class="hljs-keyword">from</span> <span class="hljs-string">'./.env.dev'</span><br><span class="hljs-keyword">import</span> test <span class="hljs-keyword">from</span> <span class="hljs-string">'./.env.test'</span><br><span class="hljs-keyword">import</span> pre <span class="hljs-keyword">from</span> <span class="hljs-string">'./.env.pre'</span><br><span class="hljs-keyword">import</span> prod <span class="hljs-keyword">from</span> <span class="hljs-string">'./.env.pro'</span><br><br><span class="hljs-comment">// import.meta.env 这是vite环境变量</span><br><span class="hljs-keyword">const</span> <span class="hljs-variable constant_">NODE_ENV</span> = <span class="hljs-keyword">import</span>.<span class="hljs-property">meta</span>.<span class="hljs-property">env</span>.<span class="hljs-property">MODE</span><br><span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">'NODE_ENV----'</span>, <span class="hljs-variable constant_">NODE_ENV</span>)<br><br><span class="hljs-keyword">let</span> <span class="hljs-attr">ENV_VAR</span>: { <span class="hljs-attr">BASE_API</span>: <span class="hljs-built_in">string</span> } = { <span class="hljs-attr">BASE_API</span>: <span class="hljs-string">'dev'</span> }<br><span class="hljs-keyword">if</span> (<span class="hljs-variable constant_">NODE_ENV</span> === <span class="hljs-string">'dev'</span> || <span class="hljs-variable constant_">NODE_ENV</span> === <span class="hljs-string">'development'</span>) {<br> <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">'开发---'</span>)<br> <span class="hljs-variable constant_">ENV_VAR</span> = dev<br>} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (<span class="hljs-variable constant_">NODE_ENV</span> === <span class="hljs-string">'test'</span>) {<br> <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">'测试---'</span>)<br> <span class="hljs-variable constant_">ENV_VAR</span> = test<br>} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (<span class="hljs-variable constant_">NODE_ENV</span> === <span class="hljs-string">'pre'</span>) {<br> <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">'预发布---'</span>)<br> <span class="hljs-variable constant_">ENV_VAR</span> = pre<br>} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (<span class="hljs-variable constant_">NODE_ENV</span> === <span class="hljs-string">'pro'</span> || <span class="hljs-variable constant_">NODE_ENV</span> === <span class="hljs-string">'production'</span>) {<br> <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">'生产---'</span>)<br> <span class="hljs-variable constant_">ENV_VAR</span> = prod<br>}<br><span class="hljs-comment">// else if (NODE_ENV === 'demo') {</span><br><span class="hljs-comment">// ENV_VAR = demo</span><br><span class="hljs-comment">// }</span><br><br><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-variable constant_">ENV_VAR</span><br></code></pre></td></tr></table></figure></li><li><p><code>package.json</code> 中增加命令</p><p>这里增加即是为了让 <code>import.meta.env.MODE</code> 拿到对应的值</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-attr">"scripts"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> ...<br> <span class="hljs-attr">"dev:weixin"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p mp-weixin --mode dev"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"test:weixin"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni -p mp-weixin --mode test"</span><span class="hljs-punctuation">,</span><br> <span class="hljs-attr">"build:weixin"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"uni build -p mp-weixin --mode pro"</span><br><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure></li><li><p>api 接口常量文件 <code>src/config/app.ts</code> 获取 <code>env.ts</code> 返回的不同环境 api 地址</p><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-keyword">import</span> <span class="hljs-variable constant_">ENV_CONFIG</span> <span class="hljs-keyword">from</span> <span class="hljs-string">'@/config/env'</span><br><span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">'不同环境不同地址---'</span>, <span class="hljs-variable constant_">ENV_CONFIG</span>)<br><span class="hljs-comment">// mock请求地址 'http://localhost:3300'</span><br><span class="hljs-keyword">export</span> <span class="hljs-keyword">const</span> <span class="hljs-variable constant_">HTTP_REQUEST_URL</span> = <span class="hljs-variable constant_">ENV_CONFIG</span>.<span class="hljs-property">BASE_API</span><br></code></pre></td></tr></table></figure></li><li><p>启动项目</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs powershell">pnpm dev:weixin<br></code></pre></td></tr></table></figure></li></ol><p>参考文章<sup id="fnref:8" class="footnote-ref"><a href="#fn:8" rel="footnote"><span class="hint--top hint--rounded" aria-label="使用命令行构建uni-app + vue3 + vite + vant并实现多环境打包
">[8]</span></a></sup></p><br><h3 id="😫小波搭建uni-app微信小程序APP工程化项目遇见的一些问题"><a href="#😫小波搭建uni-app微信小程序APP工程化项目遇见的一些问题" class="headerlink" title="😫小波搭建uni-app微信小程序APP工程化项目遇见的一些问题"></a>😫小波搭建uni-app微信小程序APP工程化项目遇见的一些问题</h3><blockquote><p><span class="label label-danger">报错</span></p><p><code>vue cli3中eslint报错“no-undef“和eslint规则配置</code></p><p>解决方案:</p><p><code>.eslintrc.js</code> 中 <code>rules</code> 增加如下代码</p><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-attr">rules</span>: {<br> <span class="hljs-string">'no-undef'</span>: <span class="hljs-number">0</span>,<br>}<br></code></pre></td></tr></table></figure></blockquote><blockquote><p><span class="label label-danger">报错</span></p><p><code>[@vue/compiler-sfc] type argument passed to defineProps() must be a literal type, or a reference to an interface or literal type.</code></p><p>原因及解决方案:因为组件中 <code>defineProps</code> 不支持外部导入的ts申明,只能写在组件页面中</p></blockquote><blockquote><p><span class="label label-danger">报错</span></p><p><code>Type '{}' is not assignable to type '(props: Readonly) => object'. Type '{}' provides no match for the signature '(props: Readonly): object'.</code></p><p>当使用基于类型的声明时,我们失去了为 <code>props</code> 声明默认值的能力。这可以通过 <code>withDefaults</code> 编译器宏解决:</p><p>解决方案:</p><p>数组,对象需要用函数返回</p><figure class="highlight typescript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><code class="hljs typescript"><span class="hljs-attr">goods</span>: <span class="hljs-function">() =></span> [<br> {<br> <span class="hljs-attr">id</span>: <span class="hljs-number">6905</span>,<br> <span class="hljs-attr">name</span>: <span class="hljs-string">''</span>,<br> <span class="hljs-attr">icon</span>: <span class="hljs-string">''</span>,<br> <span class="hljs-attr">sort</span>: <span class="hljs-number">1</span>,<br> <span class="hljs-attr">is_show_backstage</span>: <span class="hljs-number">0</span>,<br> <span class="hljs-attr">goods_list</span>: [],<br> },<br>],<br><span class="hljs-attr">computedMenuCartNum</span>: <span class="hljs-function">() =></span> {<br> <span class="hljs-keyword">return</span> <span class="hljs-number">0</span><br>},<br></code></pre></td></tr></table></figure></blockquote><blockquote><p><span class="label label-danger">报错</span></p><p><code>Set "volar.inlayHints.eventArgumentInInlineHandlers": false to hide Event Argument in Inline Handlers.</code></p><p>上面翻译过来就是:设置<code>“volar.inlayHints。eventArgumentInInlineHandlers": false</code>在内联处理程序中隐藏事件参数。</p><p>解决方案:</p><p>vscode 的 <code>setting.json</code> 中添加</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-attr">"editor.inlayHints.enabled"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"off"</span><br></code></pre></td></tr></table></figure></blockquote><blockquote><p><span class="label label-danger">报错</span></p><p><code>Component is not found in path "pages/menu/hooks/useNav" (using by "pages/menu/index")</code></p><p>原因及解决方案:uniapp 如果在页面文件夹引入子 hooks 组件,则只能用 <code>menuHook/index.vue</code> 模式, 不然报错</p></blockquote><blockquote><p><span class="label label-danger">报错</span></p><p>JSON 中不允许有注释。</p><p>解决方案:右下角的 <code>json</code> 点一下,然后输入 <code>comment</code>,下拉选择 <code>json with comments</code> 就可以了</p></blockquote><blockquote><p><span class="label label-danger">报错</span></p><p>微信开发工具启用手机预览编译后报错小程序按需注入</p><p>解决方案:</p><p><code>manifest.json</code> 中增加以下代码</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs json"><span class="hljs-attr">"mp-weixin"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span><br> <span class="hljs-comment">// 小程序按需注入</span><br> <span class="hljs-attr">"lazyCodeLoading"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"requiredComponents"</span><br><span class="hljs-punctuation">}</span><br></code></pre></td></tr></table></figure></blockquote><br><h3 id="😚直接克隆项目后安装步骤"><a href="#😚直接克隆项目后安装步骤" class="headerlink" title="😚直接克隆项目后安装步骤"></a>😚直接克隆项目后安装步骤</h3><ol><li><code>pnpm install</code> 后, 用 HBuildX 启动(选择项目–>运行–>运行到小程序模拟器) 或者 <code>pnpm dev:mp-weixin</code></li><li>微信开发工具勾选 <strong>不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书</strong></li></ol><br><h3 id="😊来自小波的bilibili视频教程"><a href="#😊来自小波的bilibili视频教程" class="headerlink" title="😊来自小波的bilibili视频教程"></a>😊来自小波的bilibili视频教程</h3><ol><li>安装搭建项目如果遇到什么问题,请留言,小波会尽快回复。</li><li>小波主参考 Cobyte 大大写的文章<sup id="fnref:3" class="footnote-ref"><a href="#fn:3" rel="footnote"><span class="hint--top hint--rounded" aria-label="使用Vue3 + Vite + TS 创建uni-app项目工程化实践
">[3]</span></a></sup>。万分感谢 !</li></ol><br><h3 id="🙂小波用到的相关参考资料链接"><a href="#🙂小波用到的相关参考资料链接" class="headerlink" title="🙂小波用到的相关参考资料链接"></a>🙂小波用到的相关参考资料链接</h3><section class="footnotes"><div class="footnote-list"><ol><li><span id="fn:1" class="footnote-text"><span><a href="https://www.pnpm.cn/" target="_blank" rel="noopener external nofollow noreferrer">pnpm官网</a> <a href="#fnref:1" rev="footnote" class="footnote-backref">↩</a></span></span></li><li><span id="fn:2" class="footnote-text"><span><a href="https://uniapp.dcloud.net.cn/quickstart-cli.html" target="_blank" rel="noopener external nofollow noreferrer">https://uniapp.dcloud.net.cn/quickstart-cli.html</a> <a href="#fnref:2" rev="footnote" class="footnote-backref">↩</a></span></span></li><li><span id="fn:3" class="footnote-text"><span><a href="https://juejin.cn/post/7046632389237293087" target="_blank" rel="noopener external nofollow noreferrer">使用Vue3 + Vite + TS 创建uni-app项目工程化实践</a> <a href="#fnref:3" rev="footnote" class="footnote-backref">↩</a></span></span></li><li><span id="fn:4" class="footnote-text"><span><a href="https://uniapp.dcloud.net.cn/quickstart-cli.html" target="_blank" rel="noopener external nofollow noreferrer">uni-app官网</a> <a href="#fnref:4" rev="footnote" class="footnote-backref">↩</a></span></span></li><li><span id="fn:5" class="footnote-text"><span><a href="https://cn.vuejs.org/guide/introduction.html" target="_blank" rel="noopener external nofollow noreferrer">vue官网</a> <a href="#fnref:5" rev="footnote" class="footnote-backref">↩</a></span></span></li><li><span id="fn:6" class="footnote-text"><span><a href="https://koa.bootcss.com/" target="_blank" rel="noopener external nofollow noreferrer">koa官网</a> <a href="#fnref:6" rev="footnote" class="footnote-backref">↩</a></span></span></li><li><span id="fn:7" class="footnote-text"><span><a href="https://segmentfault.com/a/1190000038533257" target="_blank" rel="noopener external nofollow noreferrer">vue3 + vite + typescript + eslint + jest项目配置实践</a> <a href="#fnref:7" rev="footnote" class="footnote-backref">↩</a></span></span></li><li><span id="fn:8" class="footnote-text"><span><a href="https://www.jianshu.com/p/d5b11d140574" target="_blank" rel="noopener external nofollow noreferrer">使用命令行构建uni-app + vue3 + vite + vant并实现多环境打包</a> <a href="#fnref:8" rev="footnote" class="footnote-backref">↩</a></span></span></li></ol></div></section><div class="post-wxgzh-box"><img src="https://blog.ganxb2.com/img/wxgzh2.webp" srcset="data:image/jpeg;base64,UklGRmQZAABXRUJQVlA4IFgZAAAQjwCdASowAuoBPjEYiEQiIYjMMBABglnbuF2sRsPn9j/IDv0qW9A/o36zf23/o/7P5gai/M/6h+W/3H/4nyG6wucPpA+ETxn8y/uf9b/a/+8f///r/ff+y/3r2K/o7+oe4F+lv+K/vX91/13+n///zAeo79xPUB/QP6r/sP9j+9vyv/4L/i/1X3O/sP/wP8d/qvkA/jn9J+/TvJ/QD/lH93/6P5//Lp/sf/F/uP3/+jX9nv/D/pP3/+hf+a/3D/lfn/8gHoAegB6e/UD+y9pv9//Lb2d6ufrZyDfNf4rzR/jv2P/M/3D9yPXfvZ4AX5H/MP8j+Xn5Z8aCAD9B/q3+l8I7VB73ewB/Ov7J/suMw8o9gL+cf2H/q+np/w/5D8tPcH+f/4T/y/4v4DP5l/Yv+n/efa09f37qexn+yP//CLyW85UXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqotZS8+wjCbzlRcQ1uaHZgqouIaurZDgdWIeLY8vUWE7mh2YKqLiGTA/q1I2++2c8/u8dqh/gvkJJAybn+NuCHb+M4Yw/RbPP+7dXRkz7O3+bxj941kvcUVHylxcFOs9kcAmD/5kge5T3NQVUXENbmhx6qGQ0CEQc+Ll5xZ8k9oGzWOHaZvFY4EWp7Ieh0g1TPlfLGrg6t1UUQEmTI1DhFHXrkSPcCK4uok9NuISGpWK0uQ1Le1uaHZgqouEwJ21dbiW0APG5yZmzpm4N9jJbJu0/bQTmmTR/VOZeCKYIzicpWPP6K4zIMkuTowHKdcUGZ29sAqrkR/ecqLiGtzL5HbxXzcletEFDhHZTMNtcUX23EX6jQUGwYaZsyKfZANK4Xhu+DIQRSOiyyXnNClsy6Bx0aQWwBq6E5yKO/C95imXwtqo3Krs56Nf9kq2vyEanI2Q/iqWjg9TENbmg982wWUui9Eod7iIwg1lpD+SPE84oaUnV2ud3jSBDEytUKlM/cs+hzBbWgUTCj9TvegY0e1e75oxhqyKG6yHfTwLdu4IDcfMGV4wIUNwKn3D6OUmLiGtzLst0Cvp7gm2NH+3kDZBUMwSEVXn4ufw9CIXCtA3nKi4h08qLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKlAAP7/5bsv/nd0nlun8sAAAAAAAAAAAAAAAAAABJeg1/E195Mtr5bIH6ExACCpKqLvRrSZk3bzbV1yXU3sdZSwvnQKciS/+6yNP/BtSLt8g6c5w5B3TQXzVExNXwpHK6vvTesJhnWPnyt4x2TR22jLPj6P2L2cwZBAoSQl5BzyjYCIUSVIFWds3cAsI///Cv1PiooTBY/IpxIAj+nUHXZhfbNG5grn1Eh7uqfg9EHKO2YwWgDkAXZaIOkmvxJOszAGBHNCuv9l94rWTSLStSjNgbfbX8abgtEKWJvmvqhA4QyVlCMXRx02wS4sjhhdhG9xoYuYp7DiG8pP+YBl9pBYKZa4AQXodsIM358jgiR+8QY92J6QIu/icmakszRw/z7C38skMSkaEUvsmld8YT/t1d3ZTf5NH3GWV6bSDz7vq3Sj0uBVgcOykhqx5QN+O02eudExbLSNQPJbAAnSOATyoazahlSOdxsGNUzWmlDY+Q3jw1PeyZjEvaIUZ0wKHtpxw+LYYv6ymEfucU2oZlTaNy1YXiFYrod3liCfNJr3qzRo0pQ4md4qbKbYUl7jSpp/mDAvr6SJGw2JBcayH1X2gQsvjF/0JR20ORrgbhNJvP4FHPVJBmJj6YaI+X8RAcjoK/xaTycOW6UXdiXgBfjNrGn9B+QX8fwTZqmwiFfhQCcLkWITwGQVH1HDoUiFWE8S5hZVsXaPtO84hzoIHdraaqrngga00fcdT1b+2ENOdl/OeEyG3jzgcN+5cLnibMwVMTQSo5Xe6W3vGy1IFUtv0D20UGNHiGyBJJFx6Yp2qefbSXzueA5nWcuD2UfO+uqyAWX1fXEN+6niv8b1S4CXAXWat+SYIVbB6JN7KlZsVTvR0t+XwanqnrssD3A7C7EnVlP2tPLgqrlnZhG4GflSx0O6PiDTANLsbukD0BP7IDtilpwVBgw3kCCk0J0XnTVjKZgjJWt77KUgC9u4f6u4OkDgj/2nzY1E59WlEqdjHkJgwFqv42opRCbCc2hpwHxQXN6b/lzXFOSk7+mNc7d2ctr7DQIZIR3ROM3UwZmpK/a3kqx6jeTUn8r6VP+719iT5KLqtAYKaPuO/NADerP48Ycvnq/mnon4t2uQfWXIBjPGCdzaJAEv6AmqprJ6oR+O4n9DEbqJyB3wXNzNVuXwd/ZPqRS0coi6Avs7h6dvmqJ/GG/q2B8kLyX9QQTPcLL1mEdd3DmnmtA14gP8QDBuaRu4NdpfI/sVa20p0goUl0cDHk7UO1DbpXYCwQ3Fze1FfqxwfsxkiU9lLZU80L7Do8uo2snv1RuhSJTGJZtL/Bnwqa6NbVNhOszOHuqT8Ws87TFInRsJy0GiARiM6jOL0Zy3GelMEs8+wazB3fNwrajaSitpXqYAPBY+bXyo4zJat0ROFRyKmwRYGJigE5mK3lKxdOjPZLQDnFq6O7ZbIIUuA3AfN4h7lBpSyCUNb/eJxL3RLj0+Yprj9azLyfqwQz26YNayG1afk1QZorlK8VulnQuXmicCdwx7nX5nxT+DseQJEfdAocfWPEc3Uoj1aRbtQxVZzpnA0PtHu3647u/2QLX7xyH+80GurBiSenGk5fK/Fiz1v+8qnPP914IMyGDA9dJlTH4JdWreQO1TepecU8UfVx0seQGXZhj/6S3eKLO3nDIr2FF6vByLYgTHw20kxLRSphlCn2irdgzemEXIRt/8nDjky6fKoi+1EzvGLCF638+zxg+1bOoX4/P+pnpRhCU3xxN9mVHXvX2VK3vU+XLA8ExJuOydsHXbLgY/euphd5AkCA5LuqE+BkMOc7BFKSpf5jBTlhsqpksFlGHhMSZ97n1eHAp4WQ/a/Ib3RZ2E0hwnFzJaTD/VkkLhsuKFW8nbjTXWyOsBzADD1SMz0mt4CNz5TE9HecAbMcgyIh6+DNd3nWeQBDDZ18ZGmbYONof+i8rxpS795AwriZ1xQ5rR7s0tJaOV2QqR0TUYUuW1tts9f1AAYzqJ697Aj8mMAXWrsNOyOU5eywiGbGoAOtIuATmjHtcPTeIXO0zbDYhQgO9WOc7vLN0ZRvSqxyXiBO0Me8Nn/NYXdnQ9wfdpWfLNc++8GUtawehnCwFoVZG0pJPAIfhW9eJlT4CCWldPxQoSvkxIPN6RmjzE/tOvJF86VxH3/0MVJfOaRPZ8mKxt1lSV0iRLoMWtJkth+XX9dPF3urcDLKO/nGN/gAFfvIppNvs95ZKmyHptDXc1JYjR6nysMYxvwo307aiPyBhyNKxzVRZhqZTVwcRCV3PbfurhqaKrXVQ/B+mlOKFyS+Zd5Fv4Vs6vF1oKhB/YLz3w4S+lg3OitquknFwdELUzTV0r+MX+YZPuRW4/SfEeo0/w4NNbNBmYl7Skn3ZNQ+3kXO4C4I65WYM4IEm96p+4Krp3rG4pnwQvlG3rkZ008dpxytx4oQS0/+DhoHtS/PBES+kwHrYoFVgEV27rBa4DlXxX82iB08n+6XiuOWoQbTUJWKcEwtIlEBrXLEVXPPSMCnpq/gjJJ+W74X2Qvlh34/+AFoFIIqZOu6Op1/YonWoTXtfsopDudDkeRqAiGcrt3riOlOh7SPrr0s+P6jI9+sxrqTJutQ1IP1RUPvXOQXhy4fye9L45z5EzESecJ1E5HT+XctMA54gTDEjOk/k+pERTj89iKnNm86KG+X6MONfoSDi0SkB6Sf+xctZh+4z8vvxzCPu/sXeHdJ7ricArM83jD0lOU6bCSQZvzcIn1OLexnT3foV5GBy+9e/TA0f+XJu0CyKF3WusmYq225KyhpW3d1ZUWMgFWj7fw7qHv0bflDuVZ5xbHfNbt+z1T46HiksKa/JKPSdxdxfOB77qmcKBUHLXoyxU60dCO+Gith455SuzyiARhs2ermcVrAftSgSaIH7u7GaVWk/pyYHwDyBSbCsVnbjVynVucG1VAXolRERFl0ArFwRVbWUJuG3VJOQQB4mAL/V7nk40RR8hphSjxluGxsiOruVoJjRjcMbpNy/857cVF+AV2UKldyk/+zkn+/wnmsBlwEVEpauPh4zdIWN7n4HKZ4lo1IHbilOmh+4hWHlEOtkp1VApHGvYhTFdG7uy+cwHpNlwkxQH/dfMSdFMzuDsPrOXfHUeThuqpqb6bG4X+BgX7rE4w8vQURhSGB0kmQFfjrlCtoZpEr/FqtU3DRXJ6nujcQ/TzR/fzzPlK8w3Y5DlWcgf1PoU0RmclZo9aPmlnAxcg33LqwWyWg92l30ZQL+MSfi4LTYKqAz8YXvc+KtSTma9hnLJgbhXjBIPIRxbiCuVdabbgCl0M+sPshE8PQYWV2zWGd7Vf5nB7jBmJ72ZwCQtktV+d782A8dyFY+idZSOyr8lytwkv3U8Tz2SQFQDPmqYDZT1gO2j6inriIIDDSpMu6vgrNtcvygY0uEq64xBHZTUOiRd+ZmbG2vLcL2lZaAivYupSwlFyKpQ+uBB0544ZAJ3KZf5NR5oei0ku6o/aGh+I+hojFQIn8lt4VbeCJFt5O8XLktcPtfirg0jZEyZU7aN//fZnX5N4h+N8IBLhnX3OrqEx03vBHcaFm8WVwa/Yb7m9qFW77gRwAC700Z7/v0ABFp979ugrpumYMkO+RXMiurFfpCOv7zH+Ax4X64yU42JmZa2P104cfOCWd1IczR4po3MgElL1DFaNyQUSXlqBshN9gHOYHHRDhMOMiHQWNrabEp13dxiFUYlux6y9PrfwjozXu0R4mitJTKzjcOQx+TRxjoU+a8QHoNbPU+nH6ES2lKQuvJifOdnv4vsn4fBFi8FLVG0My1F9aL58vFzVatPwB/HrjoFTuXjZRSGPU3Q3aIypFgSXhodUxbl+B4i3LUwOP0uY0XgtKAjM70rBuDPlNaADeeADOfKzAxChwElKtlSMDAOzdS79Ezw/vs4rdjKQtr0bbxBDCXN/FE0MsqwKOkCpC/FCZ3ejfpJxqDz/+v5nDFNsNgQT8QdDI86FytHSLdZP/VT+7J5QBC62wsUrbRwd5BT55+BPBKfGbzcPbE9u35UbPDrv84eB1WlbKnLUpOX//38JS/49mEvkf1sjNH5pLsRiDnazyAe/BPty9xU74RQm9k82UsQ2QJmGKeg8M7Ya47BwFpSUgsUAZpm36h5j6Fziu/7cYEjpco7B51bEnQdT8Fba6St5Q0Vort9mvS5gkNSnQUnRem8eucZ6H1zEPEGIVRhRnNz6clIsM67I3Ag+YPuvPK8r6q7pEuRGFzgBzBNH9jx7yU686eY7LzQVW0IHPXWEEj3ie0MLd1U6xNE7N13uzD7iLhwqSCuLTprK7GMnGB5wqifijf7RNZYUDUn5sq3TpiOu2r6uF6gg4wqZ2MfkK7dYsFFe0um1/XrnmX43agswD2jcSNed8fN3EQ2qb4GM431oJyiIYkEHFnU+ChkiTdejnSG+TIUzIzqKuWhDtNnmsSpIQiHEEN3UB8ech/6HeshXqfFqzqbAQ3VYaum67yFnrtRgwAym+VD9SmFwwo2LP2PfUjK8pD0LXtI24LtftMcuypSLDvehRagyBiHdV9KM5x+8EgvvyhPMGnMxDg3IRBwc8uEeRmSRJ5I7vBMezkzkSHNEg8vIotk21w8U/+8qhKgUABwuhNQb79Hc6sE95iH8hk0nwsEXn0cwWDjibNyP5Om28YS5liLUabAMs2hE1jDwEviY150jZX/t5Z/21W/8PSoyvVMZ9oyBXd4B6J7+SkiQjQxiO56EWMPqnDAMb3GbGXABVqKOfARnFjpoI1SA3ZtZ/N7JTZkQdaw1CTEFkAYjLCWPV6/TpAr3sCWKJ9I5aZC3uziJk200fPcj3tlEYzP8vQ1LJ9dkYbvNaALAgTjIH0T9uioPE6OlhDxzLBF73It+4C+ze0TfKqKB1iUdK4I8hl8FPviFQLkwfxG1yBg0NPZhmRf2dQGwOQG/dolDPIfdeIvR7qSfiyFrm7zqPIhn2p7KOhUcfIzyh1yXc+1lJcO8mJziFgcfUerG18kBwWwm03vV6LZS3QrVH7K8hkvWVkW9Bmr0YBkkzQ23504VDz67UY046P+2CzvkABzimxFCOZhPE3S8HSfe00ziJo2A0fwg/319eAoor5ASbhL4N1bZ4c+pZvAqcFNSV6vD39Be0xzgJ+pMKD+RjkQU3cwuFukecC5tzD/UuiYymEHm6REVAvEONwt3dfrj80cqa8lBilmQxmmmqAp4CNMz7VsrpxSliNO+9xyKFkEb5i/typA4BJqxuujdHwGg4jutWxuH0s9/Kro7d3cP080r1LuEm+7TfZwEBdTj4kyLKmaCSvuQuGoZgDhYOjy8OXxe/oB6XbnI3HdOi/hPk13aa+xaBSv0XIYIlVo+RmpmRKf4eYf7qsQdhClRn5P1KKg+q/PG0j9l+kaj45fjO3iiFqSqboI9VOil+2p1F19olvoVpNIbqlEt03g8ZjdvYdGk/jeIbHf0DWYYHgCDEHs7ybjvwQL9e29vjcWn80l4cPLOb1K0CSph/NMrQwZDXhav16kBd62bbF71C7Pz9m7KUjvE1ZyYofYRjkYuPO2hfQ5BZTxv6bcM4ifaXlBVS9j0X+MnW+RYypAuFXWRbXfpWehd8oFepCyZdeuVLtmYhkMaXkPM33CBKe+BoN9K/KiAeViKjRhZHJQQAcFZS1pXWkpkHnOWSh2MwnRP6+nyEODj8TqBvnrtGrg7ElErmgl4TebMagljJW/6PgcHNkxpC+d+2mZQYbLCNEBg0nuxfXsh/D5VjyER9fg9ArsrwjZgAfquRvKouA8eNhBdS/UY2lSZwF8rLE/NRvpKSxogkJL3reFau9AJZL/d1QwXNTq0/tVfuQ3Pzrh0Ov3qwT9iWBfATUGivckvZcMCvxeB9hVNiQNIkrGfQ1VrvSALtcdVnVTyJAaIQCeGW6lV0Jpfev0NZ1xMIOUCI9ZSmYlMRy/P2mPy5YuUjjPBcU/WdiUgV2R68IYEQSKB3rU84judzhZX38faYxgCBh4xwtPwUG53+2PjgRGhoyKYfTmsnw53ZOwURT5pP+srtB1zI4AnBrR8ET385dso+JdlfAzZXXe9SRaaWzg16CUJxZBfuNorx/3x73k3dr2ei0j/QD6DErHOLcYWAWTVvRYs4jAa0NnUNm4D9u4bhaEnI1cr04RRPZam4gyqJAcRhr8JOiIWq7aldisiFB3NxWCbJUfEi9+lD5O9uIpvtbdFF+38GC/NOSB0nHV+nq9TJtB/+87767kVpKkZ96A4Bpt/+X/OdnSWM5nrnsCm2kPH09IOB5iaY7couho2q5GCkjI5CkZfoegQfbltoB3PRgoLnXGiUQk5arSxbhH1KlmDy0VT9QHcs4yteRLF8d6P9smlVWGY4inhRZ7D1B4yVXAL2c3gUZjLhCv4cdD1Iace1CANWtNiE4imxmf2l2MIXw1FJ55XUwlsEg4Mpl5Dw6IYtdnB/s5bqjV8WCKRmuuVIyPnmCCMfmnPTg2zjOBoyw5/tt+yPWrXmFgaOuLG9cNi/opdtwp7uNWpF/qgbbU0qYItVthlbnrUKwbS4Jp7VIxs5mNg8wXcJH8+mrWpZMcq97WP2Q78d1F3IPKb/3rpOXzGoXUVP+nar3xD/HEiu3MV0z1XFRknv/UDBxWy+N0Hm24L3v/NjmEvlaFdBTfPLTZrufFnjerE6rZQmQ+TqEti9ze3pW20wgx2xHj4huVpR5PowGWGtQyUHCVJFcB0xcVy2+67JmoRAFE4JnudEJBQN8V7dzyTBWrQBtB6brea9z531wR/pW6lFoKE6+YICGs8VkCUJnQ/fThg2BvfICF/dyEUelAxlBgHUffgW+c5Fchghm/gqtUDxHKOvEmwrF6h31bdz5Ao7gR8PGbupETXTQjYphAEr92cJpbWf5yDkM+kuda2l4YMVDVQC3uaDHOnhK5JfM0Tu4rnHZKaw9ErLOsZt6e9eH34K3JakaB660PgeYz2k9xctQc8DJq9L/UV4eAGmN1aJzTm9fD4lDfiAprn+ZhmkERqZ28wj7vKv7U93yUN/tNf7SAmgF3EEjum1N6vTdy+l2FABCIEiFtb/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" lazyload alt="关注廿壴(GANXB2)微信公众号"><div class="post-wxgzh-text"><p>『旅行者』,帮小波关注一波公众号吧。</p><p>小波需要<strong>100</strong>位关注者才能申请<strong>红包封面设计资格</strong>,万分感谢!</p><p>关注后可微信小波,前<strong>66</strong>的童鞋可以申请专属红包封面设计。</p></div></div></div><div class="post-copyright-comment"><div class="text-center separator">THE END</div><div class="license-box"><div class="license-meta mb-1"><div class="license-meta-item"><div>作者</div><div><img class="author-avator" src="https://q1.qlogo.cn/g?b=qq&nk=359013988&s=100" srcset="data:image/jpeg;base64,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" lazyload alt="chopin gump"> chopin gump</div></div><div class="license-meta-item mb-1"><div>小尾巴</div><div>Stay Hungry, Stay Foolish「求知若饥, 虚心若愚」 — 廿壴(GANXB2)</div></div><div class="license-meta-item mb-1"><div>许可协议</div><div><a target="_blank" rel="nofollow external" href="https://creativecommons.org/licenses/by/4.0/"><span class="hint--top hint--rounded" aria-label="BY - 署名"><i class="iconfont icon-by"></i></span></a></div></div></div><div class="post-metas mt-3"><div class="title-box">标签</div><div class="post-meta"><i class="iconfont icon-tags"></i> <a rel="tag" href="./tags/%E5%89%8D%E7%AB%AF/">#前端</a> <a rel="tag" href="./tags/%E7%BC%96%E7%A8%8B/">#编程</a> <a rel="tag" href="./tags/typescript/">#typescript</a> <a rel="tag" href="./tags/vue3/">#vue3</a> <a rel="tag" href="./tags/uni-app/">#uni-app</a> <a rel="tag" href="./tags/vite/">#vite</a> <a rel="tag" href="./tags/uni-ui/">#uni-ui</a> <a rel="tag" href="./tags/pinia/">#pinia</a> <a rel="tag" href="./tags/pnpm/">#pnpm</a></div></div><div class="license-title"><div>如何使用vue3+vite+typescript+pinia+uni-ui+pnpm从0到1创建uni-app多端小程序APP工程化项目</div><div>https://blog.ganxb2.com/3462.html</div></div><div class="license-icon iconfont"></div></div><div class="post-prevnext"><article class="post-prev col-6"><a href="./25075.html" title="uni-app多端小程序cli工程项目如何离线打包成安卓APP" rel="prev"><img src="https://i0.hdslb.com/bfs/album/db6a4b8d09761ea1ef73569dcdb5e79379f1237f.jpg@1e_1c.webp" srcset="data:image/jpeg;base64,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" lazyload alt="uni-app多端小程序cli工程项目如何离线打包成安卓APP"> <span class="hidden-mobile">uni-app多端小程序cli工程项目如何离线打包成安卓APP</span> <i class="iconfont icon-arrowleft"></i> <span class="visible-mobile">上一篇</span></a></article><article class="post-next col-6"><a href="./13007.html" title="设计素材分享:app实体模型(mockup)psd免费下载" rel="next"><img src="https://i0.hdslb.com/bfs/album/54b2a8d86741ad947fde34fd68c2132562d328a3.jpg@1e_1c.webp" srcset="data:image/jpeg;base64,UklGRmQZAABXRUJQVlA4IFgZAAAQjwCdASowAuoBPjEYiEQiIYjMMBABglnbuF2sRsPn9j/IDv0qW9A/o36zf23/o/7P5gai/M/6h+W/3H/4nyG6wucPpA+ETxn8y/uf9b/a/+8f///r/ff+y/3r2K/o7+oe4F+lv+K/vX91/13+n///zAeo79xPUB/QP6r/sP9j+9vyv/4L/i/1X3O/sP/wP8d/qvkA/jn9J+/TvJ/QD/lH93/6P5//Lp/sf/F/uP3/+jX9nv/D/pP3/+hf+a/3D/lfn/8gHoAegB6e/UD+y9pv9//Lb2d6ufrZyDfNf4rzR/jv2P/M/3D9yPXfvZ4AX5H/MP8j+Xn5Z8aCAD9B/q3+l8I7VB73ewB/Ov7J/suMw8o9gL+cf2H/q+np/w/5D8tPcH+f/4T/y/4v4DP5l/Yv+n/efa09f37qexn+yP//CLyW85UXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqotZS8+wjCbzlRcQ1uaHZgqouIaurZDgdWIeLY8vUWE7mh2YKqLiGTA/q1I2++2c8/u8dqh/gvkJJAybn+NuCHb+M4Yw/RbPP+7dXRkz7O3+bxj941kvcUVHylxcFOs9kcAmD/5kge5T3NQVUXENbmhx6qGQ0CEQc+Ll5xZ8k9oGzWOHaZvFY4EWp7Ieh0g1TPlfLGrg6t1UUQEmTI1DhFHXrkSPcCK4uok9NuISGpWK0uQ1Le1uaHZgqouEwJ21dbiW0APG5yZmzpm4N9jJbJu0/bQTmmTR/VOZeCKYIzicpWPP6K4zIMkuTowHKdcUGZ29sAqrkR/ecqLiGtzL5HbxXzcletEFDhHZTMNtcUX23EX6jQUGwYaZsyKfZANK4Xhu+DIQRSOiyyXnNClsy6Bx0aQWwBq6E5yKO/C95imXwtqo3Krs56Nf9kq2vyEanI2Q/iqWjg9TENbmg982wWUui9Eod7iIwg1lpD+SPE84oaUnV2ud3jSBDEytUKlM/cs+hzBbWgUTCj9TvegY0e1e75oxhqyKG6yHfTwLdu4IDcfMGV4wIUNwKn3D6OUmLiGtzLst0Cvp7gm2NH+3kDZBUMwSEVXn4ufw9CIXCtA3nKi4h08qLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKlAAP7/5bsv/nd0nlun8sAAAAAAAAAAAAAAAAAABJeg1/E195Mtr5bIH6ExACCpKqLvRrSZk3bzbV1yXU3sdZSwvnQKciS/+6yNP/BtSLt8g6c5w5B3TQXzVExNXwpHK6vvTesJhnWPnyt4x2TR22jLPj6P2L2cwZBAoSQl5BzyjYCIUSVIFWds3cAsI///Cv1PiooTBY/IpxIAj+nUHXZhfbNG5grn1Eh7uqfg9EHKO2YwWgDkAXZaIOkmvxJOszAGBHNCuv9l94rWTSLStSjNgbfbX8abgtEKWJvmvqhA4QyVlCMXRx02wS4sjhhdhG9xoYuYp7DiG8pP+YBl9pBYKZa4AQXodsIM358jgiR+8QY92J6QIu/icmakszRw/z7C38skMSkaEUvsmld8YT/t1d3ZTf5NH3GWV6bSDz7vq3Sj0uBVgcOykhqx5QN+O02eudExbLSNQPJbAAnSOATyoazahlSOdxsGNUzWmlDY+Q3jw1PeyZjEvaIUZ0wKHtpxw+LYYv6ymEfucU2oZlTaNy1YXiFYrod3liCfNJr3qzRo0pQ4md4qbKbYUl7jSpp/mDAvr6SJGw2JBcayH1X2gQsvjF/0JR20ORrgbhNJvP4FHPVJBmJj6YaI+X8RAcjoK/xaTycOW6UXdiXgBfjNrGn9B+QX8fwTZqmwiFfhQCcLkWITwGQVH1HDoUiFWE8S5hZVsXaPtO84hzoIHdraaqrngga00fcdT1b+2ENOdl/OeEyG3jzgcN+5cLnibMwVMTQSo5Xe6W3vGy1IFUtv0D20UGNHiGyBJJFx6Yp2qefbSXzueA5nWcuD2UfO+uqyAWX1fXEN+6niv8b1S4CXAXWat+SYIVbB6JN7KlZsVTvR0t+XwanqnrssD3A7C7EnVlP2tPLgqrlnZhG4GflSx0O6PiDTANLsbukD0BP7IDtilpwVBgw3kCCk0J0XnTVjKZgjJWt77KUgC9u4f6u4OkDgj/2nzY1E59WlEqdjHkJgwFqv42opRCbCc2hpwHxQXN6b/lzXFOSk7+mNc7d2ctr7DQIZIR3ROM3UwZmpK/a3kqx6jeTUn8r6VP+719iT5KLqtAYKaPuO/NADerP48Ycvnq/mnon4t2uQfWXIBjPGCdzaJAEv6AmqprJ6oR+O4n9DEbqJyB3wXNzNVuXwd/ZPqRS0coi6Avs7h6dvmqJ/GG/q2B8kLyX9QQTPcLL1mEdd3DmnmtA14gP8QDBuaRu4NdpfI/sVa20p0goUl0cDHk7UO1DbpXYCwQ3Fze1FfqxwfsxkiU9lLZU80L7Do8uo2snv1RuhSJTGJZtL/Bnwqa6NbVNhOszOHuqT8Ws87TFInRsJy0GiARiM6jOL0Zy3GelMEs8+wazB3fNwrajaSitpXqYAPBY+bXyo4zJat0ROFRyKmwRYGJigE5mK3lKxdOjPZLQDnFq6O7ZbIIUuA3AfN4h7lBpSyCUNb/eJxL3RLj0+Yprj9azLyfqwQz26YNayG1afk1QZorlK8VulnQuXmicCdwx7nX5nxT+DseQJEfdAocfWPEc3Uoj1aRbtQxVZzpnA0PtHu3647u/2QLX7xyH+80GurBiSenGk5fK/Fiz1v+8qnPP914IMyGDA9dJlTH4JdWreQO1TepecU8UfVx0seQGXZhj/6S3eKLO3nDIr2FF6vByLYgTHw20kxLRSphlCn2irdgzemEXIRt/8nDjky6fKoi+1EzvGLCF638+zxg+1bOoX4/P+pnpRhCU3xxN9mVHXvX2VK3vU+XLA8ExJuOydsHXbLgY/euphd5AkCA5LuqE+BkMOc7BFKSpf5jBTlhsqpksFlGHhMSZ97n1eHAp4WQ/a/Ib3RZ2E0hwnFzJaTD/VkkLhsuKFW8nbjTXWyOsBzADD1SMz0mt4CNz5TE9HecAbMcgyIh6+DNd3nWeQBDDZ18ZGmbYONof+i8rxpS795AwriZ1xQ5rR7s0tJaOV2QqR0TUYUuW1tts9f1AAYzqJ697Aj8mMAXWrsNOyOU5eywiGbGoAOtIuATmjHtcPTeIXO0zbDYhQgO9WOc7vLN0ZRvSqxyXiBO0Me8Nn/NYXdnQ9wfdpWfLNc++8GUtawehnCwFoVZG0pJPAIfhW9eJlT4CCWldPxQoSvkxIPN6RmjzE/tOvJF86VxH3/0MVJfOaRPZ8mKxt1lSV0iRLoMWtJkth+XX9dPF3urcDLKO/nGN/gAFfvIppNvs95ZKmyHptDXc1JYjR6nysMYxvwo307aiPyBhyNKxzVRZhqZTVwcRCV3PbfurhqaKrXVQ/B+mlOKFyS+Zd5Fv4Vs6vF1oKhB/YLz3w4S+lg3OitquknFwdELUzTV0r+MX+YZPuRW4/SfEeo0/w4NNbNBmYl7Skn3ZNQ+3kXO4C4I65WYM4IEm96p+4Krp3rG4pnwQvlG3rkZ008dpxytx4oQS0/+DhoHtS/PBES+kwHrYoFVgEV27rBa4DlXxX82iB08n+6XiuOWoQbTUJWKcEwtIlEBrXLEVXPPSMCnpq/gjJJ+W74X2Qvlh34/+AFoFIIqZOu6Op1/YonWoTXtfsopDudDkeRqAiGcrt3riOlOh7SPrr0s+P6jI9+sxrqTJutQ1IP1RUPvXOQXhy4fye9L45z5EzESecJ1E5HT+XctMA54gTDEjOk/k+pERTj89iKnNm86KG+X6MONfoSDi0SkB6Sf+xctZh+4z8vvxzCPu/sXeHdJ7ricArM83jD0lOU6bCSQZvzcIn1OLexnT3foV5GBy+9e/TA0f+XJu0CyKF3WusmYq225KyhpW3d1ZUWMgFWj7fw7qHv0bflDuVZ5xbHfNbt+z1T46HiksKa/JKPSdxdxfOB77qmcKBUHLXoyxU60dCO+Gith455SuzyiARhs2ermcVrAftSgSaIH7u7GaVWk/pyYHwDyBSbCsVnbjVynVucG1VAXolRERFl0ArFwRVbWUJuG3VJOQQB4mAL/V7nk40RR8hphSjxluGxsiOruVoJjRjcMbpNy/857cVF+AV2UKldyk/+zkn+/wnmsBlwEVEpauPh4zdIWN7n4HKZ4lo1IHbilOmh+4hWHlEOtkp1VApHGvYhTFdG7uy+cwHpNlwkxQH/dfMSdFMzuDsPrOXfHUeThuqpqb6bG4X+BgX7rE4w8vQURhSGB0kmQFfjrlCtoZpEr/FqtU3DRXJ6nujcQ/TzR/fzzPlK8w3Y5DlWcgf1PoU0RmclZo9aPmlnAxcg33LqwWyWg92l30ZQL+MSfi4LTYKqAz8YXvc+KtSTma9hnLJgbhXjBIPIRxbiCuVdabbgCl0M+sPshE8PQYWV2zWGd7Vf5nB7jBmJ72ZwCQtktV+d782A8dyFY+idZSOyr8lytwkv3U8Tz2SQFQDPmqYDZT1gO2j6inriIIDDSpMu6vgrNtcvygY0uEq64xBHZTUOiRd+ZmbG2vLcL2lZaAivYupSwlFyKpQ+uBB0544ZAJ3KZf5NR5oei0ku6o/aGh+I+hojFQIn8lt4VbeCJFt5O8XLktcPtfirg0jZEyZU7aN//fZnX5N4h+N8IBLhnX3OrqEx03vBHcaFm8WVwa/Yb7m9qFW77gRwAC700Z7/v0ABFp979ugrpumYMkO+RXMiurFfpCOv7zH+Ax4X64yU42JmZa2P104cfOCWd1IczR4po3MgElL1DFaNyQUSXlqBshN9gHOYHHRDhMOMiHQWNrabEp13dxiFUYlux6y9PrfwjozXu0R4mitJTKzjcOQx+TRxjoU+a8QHoNbPU+nH6ES2lKQuvJifOdnv4vsn4fBFi8FLVG0My1F9aL58vFzVatPwB/HrjoFTuXjZRSGPU3Q3aIypFgSXhodUxbl+B4i3LUwOP0uY0XgtKAjM70rBuDPlNaADeeADOfKzAxChwElKtlSMDAOzdS79Ezw/vs4rdjKQtr0bbxBDCXN/FE0MsqwKOkCpC/FCZ3ejfpJxqDz/+v5nDFNsNgQT8QdDI86FytHSLdZP/VT+7J5QBC62wsUrbRwd5BT55+BPBKfGbzcPbE9u35UbPDrv84eB1WlbKnLUpOX//38JS/49mEvkf1sjNH5pLsRiDnazyAe/BPty9xU74RQm9k82UsQ2QJmGKeg8M7Ya47BwFpSUgsUAZpm36h5j6Fziu/7cYEjpco7B51bEnQdT8Fba6St5Q0Vort9mvS5gkNSnQUnRem8eucZ6H1zEPEGIVRhRnNz6clIsM67I3Ag+YPuvPK8r6q7pEuRGFzgBzBNH9jx7yU686eY7LzQVW0IHPXWEEj3ie0MLd1U6xNE7N13uzD7iLhwqSCuLTprK7GMnGB5wqifijf7RNZYUDUn5sq3TpiOu2r6uF6gg4wqZ2MfkK7dYsFFe0um1/XrnmX43agswD2jcSNed8fN3EQ2qb4GM431oJyiIYkEHFnU+ChkiTdejnSG+TIUzIzqKuWhDtNnmsSpIQiHEEN3UB8ech/6HeshXqfFqzqbAQ3VYaum67yFnrtRgwAym+VD9SmFwwo2LP2PfUjK8pD0LXtI24LtftMcuypSLDvehRagyBiHdV9KM5x+8EgvvyhPMGnMxDg3IRBwc8uEeRmSRJ5I7vBMezkzkSHNEg8vIotk21w8U/+8qhKgUABwuhNQb79Hc6sE95iH8hk0nwsEXn0cwWDjibNyP5Om28YS5liLUabAMs2hE1jDwEviY150jZX/t5Z/21W/8PSoyvVMZ9oyBXd4B6J7+SkiQjQxiO56EWMPqnDAMb3GbGXABVqKOfARnFjpoI1SA3ZtZ/N7JTZkQdaw1CTEFkAYjLCWPV6/TpAr3sCWKJ9I5aZC3uziJk200fPcj3tlEYzP8vQ1LJ9dkYbvNaALAgTjIH0T9uioPE6OlhDxzLBF73It+4C+ze0TfKqKB1iUdK4I8hl8FPviFQLkwfxG1yBg0NPZhmRf2dQGwOQG/dolDPIfdeIvR7qSfiyFrm7zqPIhn2p7KOhUcfIzyh1yXc+1lJcO8mJziFgcfUerG18kBwWwm03vV6LZS3QrVH7K8hkvWVkW9Bmr0YBkkzQ23504VDz67UY046P+2CzvkABzimxFCOZhPE3S8HSfe00ziJo2A0fwg/319eAoor5ASbhL4N1bZ4c+pZvAqcFNSV6vD39Be0xzgJ+pMKD+RjkQU3cwuFukecC5tzD/UuiYymEHm6REVAvEONwt3dfrj80cqa8lBilmQxmmmqAp4CNMz7VsrpxSliNO+9xyKFkEb5i/typA4BJqxuujdHwGg4jutWxuH0s9/Kro7d3cP080r1LuEm+7TfZwEBdTj4kyLKmaCSvuQuGoZgDhYOjy8OXxe/oB6XbnI3HdOi/hPk13aa+xaBSv0XIYIlVo+RmpmRKf4eYf7qsQdhClRn5P1KKg+q/PG0j9l+kaj45fjO3iiFqSqboI9VOil+2p1F19olvoVpNIbqlEt03g8ZjdvYdGk/jeIbHf0DWYYHgCDEHs7ybjvwQL9e29vjcWn80l4cPLOb1K0CSph/NMrQwZDXhav16kBd62bbF71C7Pz9m7KUjvE1ZyYofYRjkYuPO2hfQ5BZTxv6bcM4ifaXlBVS9j0X+MnW+RYypAuFXWRbXfpWehd8oFepCyZdeuVLtmYhkMaXkPM33CBKe+BoN9K/KiAeViKjRhZHJQQAcFZS1pXWkpkHnOWSh2MwnRP6+nyEODj8TqBvnrtGrg7ElErmgl4TebMagljJW/6PgcHNkxpC+d+2mZQYbLCNEBg0nuxfXsh/D5VjyER9fg9ArsrwjZgAfquRvKouA8eNhBdS/UY2lSZwF8rLE/NRvpKSxogkJL3reFau9AJZL/d1QwXNTq0/tVfuQ3Pzrh0Ov3qwT9iWBfATUGivckvZcMCvxeB9hVNiQNIkrGfQ1VrvSALtcdVnVTyJAaIQCeGW6lV0Jpfev0NZ1xMIOUCI9ZSmYlMRy/P2mPy5YuUjjPBcU/WdiUgV2R68IYEQSKB3rU84judzhZX38faYxgCBh4xwtPwUG53+2PjgRGhoyKYfTmsnw53ZOwURT5pP+srtB1zI4AnBrR8ET385dso+JdlfAzZXXe9SRaaWzg16CUJxZBfuNorx/3x73k3dr2ei0j/QD6DErHOLcYWAWTVvRYs4jAa0NnUNm4D9u4bhaEnI1cr04RRPZam4gyqJAcRhr8JOiIWq7aldisiFB3NxWCbJUfEi9+lD5O9uIpvtbdFF+38GC/NOSB0nHV+nq9TJtB/+87767kVpKkZ96A4Bpt/+X/OdnSWM5nrnsCm2kPH09IOB5iaY7couho2q5GCkjI5CkZfoegQfbltoB3PRgoLnXGiUQk5arSxbhH1KlmDy0VT9QHcs4yteRLF8d6P9smlVWGY4inhRZ7D1B4yVXAL2c3gUZjLhCv4cdD1Iace1CANWtNiE4imxmf2l2MIXw1FJ55XUwlsEg4Mpl5Dw6IYtdnB/s5bqjV8WCKRmuuVIyPnmCCMfmnPTg2zjOBoyw5/tt+yPWrXmFgaOuLG9cNi/opdtwp7uNWpF/qgbbU0qYItVthlbnrUKwbS4Jp7VIxs5mNg8wXcJH8+mrWpZMcq97WP2Q78d1F3IPKb/3rpOXzGoXUVP+nar3xD/HEiu3MV0z1XFRknv/UDBxWy+N0Hm24L3v/NjmEvlaFdBTfPLTZrufFnjerE6rZQmQ+TqEti9ze3pW20wgx2xHj4huVpR5PowGWGtQyUHCVJFcB0xcVy2+67JmoRAFE4JnudEJBQN8V7dzyTBWrQBtB6brea9z531wR/pW6lFoKE6+YICGs8VkCUJnQ/fThg2BvfICF/dyEUelAxlBgHUffgW+c5Fchghm/gqtUDxHKOvEmwrF6h31bdz5Ao7gR8PGbupETXTQjYphAEr92cJpbWf5yDkM+kuda2l4YMVDVQC3uaDHOnhK5JfM0Tu4rnHZKaw9ErLOsZt6e9eH34K3JakaB660PgeYz2k9xctQc8DJq9L/UV4eAGmN1aJzTm9fD4lDfiAprn+ZhmkERqZ28wj7vKv7U93yUN/tNf7SAmgF3EEjum1N6vTdy+l2FABCIEiFtb/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" lazyload alt="设计素材分享:app实体模型(mockup)psd免费下载"> <span class="hidden-mobile">设计素材分享:app实体模型(mockup)psd免费下载</span> <i class="iconfont icon-arrowright"></i> <span class="visible-mobile">下一篇</span></a></article></div><div class="social-btnbar"><a href="javascript: void(0);" role="button" class="btn btn-like post-meta mr-4 not-check-link click-effect"><svg t="1673336136955" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2248" width="19" height="19"><path d="M835.7 520.6c-8.7-5-17.8-8.3-27.1-10-5.9-36.9-27.6-70.9-62.4-90.9l-37-21.3c-8.7-5-17.8-8.3-27.1-10-5.9-36.9-27.6-70.9-62.4-90.9l-37-21.3 19.5-33.8c28.7-49.7 23.4-112.3-13-152.1-28.7-31.4-68.7-46.8-109.8-42.3-40.5 4.4-76.8 28-97.1 63.3l-7.5 13C334.6 69.7 263 45.6 201.6 68.1c-42 15.4-74.7 48-89.7 89.6-15.1 41.6-11 87.4 11.1 125.6l80 138.6-55.3 95.8C88.9 619.4 124 750.2 225.8 809l221.7 128c142.6 82.3 325.6 33.3 408-109.3l42.7-73.9c47-81.5 19-186.1-62.5-233.2zM196.9 240.4c-9.5-16.4-11.2-36-4.8-53.8 6.6-18.1 20.4-31.8 38.9-38.6 16.8-6.2 35.8-3.6 52 5.8 11 6.4 20.8 15.9 27.7 27.9l15.4 26.8-73.9 128-55.3-96.1zM781.6 785C722.8 886.9 592 921.9 490.2 863.1l-221.7-128c-61.1-35.3-82.1-113.7-46.9-174.9l31.6-54.7 0.1-0.1 149.3-258.7c1.4-2.5 1.8-5.3 2.7-7.9 2.7-2.7 5.2-5.7 7.1-9.1l43.9-76c6.9-11.9 18.7-19.6 32.4-21.1 8.1-0.9 23.8-0.1 37.6 15 11.4 12.5 12.3 34.3 2.1 51.9l-62.2 107.7-64 110.9c-11.8 20.4-4.8 46.5 15.6 58.3 20.4 11.8 46.5 4.8 58.3-15.6l64-110.8 37 21.3c20.4 11.8 27.4 37.9 15.6 58.3v0.1L539 522.6c-11.8 20.4-4.8 46.5 15.6 58.3s46.5 4.8 58.3-15.6l53.7-93 36.9 21.3c20.4 11.8 27.4 37.9 15.6 58.3 0 0.1-0.1 0.1-0.1 0.2v0.1l-53.5 92.7c-11.8 20.4-4.8 46.5 15.6 58.3s46.5 4.8 58.3-15.6l53.7-93c40.7 23.5 54.7 75.8 31.2 116.5L781.6 785z" p-id="2249"></path></svg>比心 <span class="like-red-dot"><i class="leancloud-like">0</i></span> </a><a href="javascript: void(0);" role="button" class="btn btn-pay post-meta mr-4 not-check-link click-effect"><svg t="1654250384224" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2565" width="25" height="25"><path d="M485.493811 587.391061l62.032822 0c-1.954515 16.158005-5.636371 30.886451-11.08036 44.164872l190.410678 49.591465-29.002544 53.867862c-71.681576-24.290219-135.146003-44.217061-190.408631-59.764152-30.641881 31.984459-92.744287 52.068889-186.326663 60.2185-7.556093-17.502629-17.030885-36.521798-28.547173-57.043181 69.746504-4.065596 118.831432-12.684904 147.187247-25.825179C468.113979 639.460973 483.399103 617.736183 485.493811 587.391061L485.493811 587.391061 485.493811 587.391061zM485.947136 288.540625l61.578474 0 0 52.977585 46.188972 0c11.325953-16.917298 21.883403-33.957393 31.688723-51.170426l51.181683 21.741163-20.608364 29.429263 75.380828 0 0 100.526531-55.244208 0L676.113243 388.613832 358.21601 388.613832l0 53.43091-55.210439 0 0-100.526531 71.752184 0c-5.565762-9.509585-11.377118-19.029402-17.414625-28.538987l48.440246-22.187325c11.656481 17.213034 22.509666 34.123168 32.596396 50.725288l47.567365 0L485.947136 288.540625 485.947136 288.540625 485.947136 288.540625zM339.684958 653.071969 339.684958 529.894555l353.197204 0 0 123.17639-59.765175 0 0-74.28282L399.467529 578.788126l0 74.28282L339.684958 653.070946 339.684958 653.071969 339.684958 653.071969zM377.305787 509.060041l0-99.174744 279.803637 0 0 99.174744L377.305787 509.060041 377.305787 509.060041 377.305787 509.060041zM432.517249 471.927329 601.881588 471.927329l0-24.909319L432.517249 447.01801 432.517249 471.927329 432.517249 471.927329 432.517249 471.927329zM511.946276 65.281819c-246.596328 0-446.656783 200.024639-446.656783 446.700785 0 246.710938 200.059432 446.735577 446.656783 446.735577 246.721171 0 446.763207-200.024639 446.763207-446.735577C958.709483 265.298272 758.667447 65.281819 511.946276 65.281819L511.946276 65.281819 511.946276 65.281819zM511.946276 910.050762c-219.829707 0-397.989363-178.230264-397.989363-398.059971 0-219.828684 178.160679-398.042575 397.989363-398.042575 219.882919 0 398.078391 178.212868 398.078391 398.042575C910.024667 731.821521 731.829196 910.050762 511.946276 910.050762L511.946276 910.050762 511.946276 910.050762zM511.946276 910.050762" p-id="2566"></path></svg>杯茶? </a><a href="javascript: void(0);" role="button" class="btn btn-share post-meta not-check-link click-effect"><svg t="1657599456011" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1652" width="20" height="20"><path d="M814.933333 900.266667H177.066667c-46.933333 0-85.333333-38.4-85.333334-85.333334v-597.333333c0-46.933333 38.4-85.333333 85.333334-85.333333h458.666666c12.8 0 21.333333 8.533333 21.333334 21.333333s-8.533333 21.333333-21.333334 21.333333H177.066667c-23.466667 0-42.666667 19.2-42.666667 42.666667v597.333333c0 23.466667 19.2 42.666667 42.666667 42.666667h637.866666c23.466667 0 42.666667-19.2 42.666667-42.666667v-204.8c0-12.8 8.533333-21.333333 21.333333-21.333333s21.333333 8.533333 21.333334 21.333333v204.8c0 46.933333-38.4 85.333333-85.333334 85.333334zM953.6 339.2c-6.4 0-12.8-2.133333-17.066667-6.4l-151.466666-172.8c-8.533333-8.533333-6.4-21.333333 2.133333-29.866667 8.533333-8.533333 21.333333-6.4 29.866667 2.133334l151.466666 172.8c8.533333 8.533333 6.4 21.333333-2.133333 29.866666-4.266667 2.133333-8.533333 4.266667-12.8 4.266667z" fill="#666666" p-id="1653"></path><path d="M802.133333 512c-4.266667 0-10.666667-2.133333-14.933333-4.266667-8.533333-8.533333-10.666667-21.333333-2.133333-29.866666l151.466666-172.8c8.533333-8.533333 21.333333-10.666667 29.866667-2.133334 8.533333 8.533333 10.666667 21.333333 2.133333 29.866667l-151.466666 172.8c-2.133333 4.266667-8.533333 6.4-14.933334 6.4z" fill="#666666" p-id="1654"></path><path d="M514.133333 552.533333c-2.133333 0-6.4 0-8.533333-2.133333-10.666667-4.266667-14.933333-17.066667-10.666667-27.733333C554.666667 377.6 697.6 283.733333 853.333333 283.733333c29.866667 0 59.733333 4.266667 87.466667 10.666667 10.666667 2.133333 19.2 14.933333 17.066667 25.6-2.133333 10.666667-14.933333 19.2-25.6 17.066667-25.6-6.4-51.2-8.533333-78.933334-8.533334-140.8 0-266.666667 83.2-322.133333 211.2-2.133333 6.4-10.666667 12.8-17.066667 12.8z" fill="#666666" p-id="1655"></path><path d="M484.266667 650.666667m-32 0a32 32 0 1 0 64 0 32 32 0 1 0-64 0Z" fill="#666666" p-id="1656"></path></svg>分享<div class="social-share"></div></a></div><div class="pay-qrcode pay-qrcode-close"><div><img src="./img/weixin_pay.webp" srcset="data:image/jpeg;base64,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" lazyload class="img-fluid" alt="微信"><p class="text-center">微信</p></div><div><img src="./img/zfb_pay.webp" srcset="data:image/jpeg;base64,UklGRmQZAABXRUJQVlA4IFgZAAAQjwCdASowAuoBPjEYiEQiIYjMMBABglnbuF2sRsPn9j/IDv0qW9A/o36zf23/o/7P5gai/M/6h+W/3H/4nyG6wucPpA+ETxn8y/uf9b/a/+8f///r/ff+y/3r2K/o7+oe4F+lv+K/vX91/13+n///zAeo79xPUB/QP6r/sP9j+9vyv/4L/i/1X3O/sP/wP8d/qvkA/jn9J+/TvJ/QD/lH93/6P5//Lp/sf/F/uP3/+jX9nv/D/pP3/+hf+a/3D/lfn/8gHoAegB6e/UD+y9pv9//Lb2d6ufrZyDfNf4rzR/jv2P/M/3D9yPXfvZ4AX5H/MP8j+Xn5Z8aCAD9B/q3+l8I7VB73ewB/Ov7J/suMw8o9gL+cf2H/q+np/w/5D8tPcH+f/4T/y/4v4DP5l/Yv+n/efa09f37qexn+yP//CLyW85UXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqotZS8+wjCbzlRcQ1uaHZgqouIaurZDgdWIeLY8vUWE7mh2YKqLiGTA/q1I2++2c8/u8dqh/gvkJJAybn+NuCHb+M4Yw/RbPP+7dXRkz7O3+bxj941kvcUVHylxcFOs9kcAmD/5kge5T3NQVUXENbmhx6qGQ0CEQc+Ll5xZ8k9oGzWOHaZvFY4EWp7Ieh0g1TPlfLGrg6t1UUQEmTI1DhFHXrkSPcCK4uok9NuISGpWK0uQ1Le1uaHZgqouEwJ21dbiW0APG5yZmzpm4N9jJbJu0/bQTmmTR/VOZeCKYIzicpWPP6K4zIMkuTowHKdcUGZ29sAqrkR/ecqLiGtzL5HbxXzcletEFDhHZTMNtcUX23EX6jQUGwYaZsyKfZANK4Xhu+DIQRSOiyyXnNClsy6Bx0aQWwBq6E5yKO/C95imXwtqo3Krs56Nf9kq2vyEanI2Q/iqWjg9TENbmg982wWUui9Eod7iIwg1lpD+SPE84oaUnV2ud3jSBDEytUKlM/cs+hzBbWgUTCj9TvegY0e1e75oxhqyKG6yHfTwLdu4IDcfMGV4wIUNwKn3D6OUmLiGtzLst0Cvp7gm2NH+3kDZBUMwSEVXn4ufw9CIXCtA3nKi4h08qLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKqLiGtzQ7MFVFxDW5odmCqi4hrc0OzBVRcQ1uaHZgqouIa3NDswVUXENbmh2YKlAAP7/5bsv/nd0nlun8sAAAAAAAAAAAAAAAAAABJeg1/E195Mtr5bIH6ExACCpKqLvRrSZk3bzbV1yXU3sdZSwvnQKciS/+6yNP/BtSLt8g6c5w5B3TQXzVExNXwpHK6vvTesJhnWPnyt4x2TR22jLPj6P2L2cwZBAoSQl5BzyjYCIUSVIFWds3cAsI///Cv1PiooTBY/IpxIAj+nUHXZhfbNG5grn1Eh7uqfg9EHKO2YwWgDkAXZaIOkmvxJOszAGBHNCuv9l94rWTSLStSjNgbfbX8abgtEKWJvmvqhA4QyVlCMXRx02wS4sjhhdhG9xoYuYp7DiG8pP+YBl9pBYKZa4AQXodsIM358jgiR+8QY92J6QIu/icmakszRw/z7C38skMSkaEUvsmld8YT/t1d3ZTf5NH3GWV6bSDz7vq3Sj0uBVgcOykhqx5QN+O02eudExbLSNQPJbAAnSOATyoazahlSOdxsGNUzWmlDY+Q3jw1PeyZjEvaIUZ0wKHtpxw+LYYv6ymEfucU2oZlTaNy1YXiFYrod3liCfNJr3qzRo0pQ4md4qbKbYUl7jSpp/mDAvr6SJGw2JBcayH1X2gQsvjF/0JR20ORrgbhNJvP4FHPVJBmJj6YaI+X8RAcjoK/xaTycOW6UXdiXgBfjNrGn9B+QX8fwTZqmwiFfhQCcLkWITwGQVH1HDoUiFWE8S5hZVsXaPtO84hzoIHdraaqrngga00fcdT1b+2ENOdl/OeEyG3jzgcN+5cLnibMwVMTQSo5Xe6W3vGy1IFUtv0D20UGNHiGyBJJFx6Yp2qefbSXzueA5nWcuD2UfO+uqyAWX1fXEN+6niv8b1S4CXAXWat+SYIVbB6JN7KlZsVTvR0t+XwanqnrssD3A7C7EnVlP2tPLgqrlnZhG4GflSx0O6PiDTANLsbukD0BP7IDtilpwVBgw3kCCk0J0XnTVjKZgjJWt77KUgC9u4f6u4OkDgj/2nzY1E59WlEqdjHkJgwFqv42opRCbCc2hpwHxQXN6b/lzXFOSk7+mNc7d2ctr7DQIZIR3ROM3UwZmpK/a3kqx6jeTUn8r6VP+719iT5KLqtAYKaPuO/NADerP48Ycvnq/mnon4t2uQfWXIBjPGCdzaJAEv6AmqprJ6oR+O4n9DEbqJyB3wXNzNVuXwd/ZPqRS0coi6Avs7h6dvmqJ/GG/q2B8kLyX9QQTPcLL1mEdd3DmnmtA14gP8QDBuaRu4NdpfI/sVa20p0goUl0cDHk7UO1DbpXYCwQ3Fze1FfqxwfsxkiU9lLZU80L7Do8uo2snv1RuhSJTGJZtL/Bnwqa6NbVNhOszOHuqT8Ws87TFInRsJy0GiARiM6jOL0Zy3GelMEs8+wazB3fNwrajaSitpXqYAPBY+bXyo4zJat0ROFRyKmwRYGJigE5mK3lKxdOjPZLQDnFq6O7ZbIIUuA3AfN4h7lBpSyCUNb/eJxL3RLj0+Yprj9azLyfqwQz26YNayG1afk1QZorlK8VulnQuXmicCdwx7nX5nxT+DseQJEfdAocfWPEc3Uoj1aRbtQxVZzpnA0PtHu3647u/2QLX7xyH+80GurBiSenGk5fK/Fiz1v+8qnPP914IMyGDA9dJlTH4JdWreQO1TepecU8UfVx0seQGXZhj/6S3eKLO3nDIr2FF6vByLYgTHw20kxLRSphlCn2irdgzemEXIRt/8nDjky6fKoi+1EzvGLCF638+zxg+1bOoX4/P+pnpRhCU3xxN9mVHXvX2VK3vU+XLA8ExJuOydsHXbLgY/euphd5AkCA5LuqE+BkMOc7BFKSpf5jBTlhsqpksFlGHhMSZ97n1eHAp4WQ/a/Ib3RZ2E0hwnFzJaTD/VkkLhsuKFW8nbjTXWyOsBzADD1SMz0mt4CNz5TE9HecAbMcgyIh6+DNd3nWeQBDDZ18ZGmbYONof+i8rxpS795AwriZ1xQ5rR7s0tJaOV2QqR0TUYUuW1tts9f1AAYzqJ697Aj8mMAXWrsNOyOU5eywiGbGoAOtIuATmjHtcPTeIXO0zbDYhQgO9WOc7vLN0ZRvSqxyXiBO0Me8Nn/NYXdnQ9wfdpWfLNc++8GUtawehnCwFoVZG0pJPAIfhW9eJlT4CCWldPxQoSvkxIPN6RmjzE/tOvJF86VxH3/0MVJfOaRPZ8mKxt1lSV0iRLoMWtJkth+XX9dPF3urcDLKO/nGN/gAFfvIppNvs95ZKmyHptDXc1JYjR6nysMYxvwo307aiPyBhyNKxzVRZhqZTVwcRCV3PbfurhqaKrXVQ/B+mlOKFyS+Zd5Fv4Vs6vF1oKhB/YLz3w4S+lg3OitquknFwdELUzTV0r+MX+YZPuRW4/SfEeo0/w4NNbNBmYl7Skn3ZNQ+3kXO4C4I65WYM4IEm96p+4Krp3rG4pnwQvlG3rkZ008dpxytx4oQS0/+DhoHtS/PBES+kwHrYoFVgEV27rBa4DlXxX82iB08n+6XiuOWoQbTUJWKcEwtIlEBrXLEVXPPSMCnpq/gjJJ+W74X2Qvlh34/+AFoFIIqZOu6Op1/YonWoTXtfsopDudDkeRqAiGcrt3riOlOh7SPrr0s+P6jI9+sxrqTJutQ1IP1RUPvXOQXhy4fye9L45z5EzESecJ1E5HT+XctMA54gTDEjOk/k+pERTj89iKnNm86KG+X6MONfoSDi0SkB6Sf+xctZh+4z8vvxzCPu/sXeHdJ7ricArM83jD0lOU6bCSQZvzcIn1OLexnT3foV5GBy+9e/TA0f+XJu0CyKF3WusmYq225KyhpW3d1ZUWMgFWj7fw7qHv0bflDuVZ5xbHfNbt+z1T46HiksKa/JKPSdxdxfOB77qmcKBUHLXoyxU60dCO+Gith455SuzyiARhs2ermcVrAftSgSaIH7u7GaVWk/pyYHwDyBSbCsVnbjVynVucG1VAXolRERFl0ArFwRVbWUJuG3VJOQQB4mAL/V7nk40RR8hphSjxluGxsiOruVoJjRjcMbpNy/857cVF+AV2UKldyk/+zkn+/wnmsBlwEVEpauPh4zdIWN7n4HKZ4lo1IHbilOmh+4hWHlEOtkp1VApHGvYhTFdG7uy+cwHpNlwkxQH/dfMSdFMzuDsPrOXfHUeThuqpqb6bG4X+BgX7rE4w8vQURhSGB0kmQFfjrlCtoZpEr/FqtU3DRXJ6nujcQ/TzR/fzzPlK8w3Y5DlWcgf1PoU0RmclZo9aPmlnAxcg33LqwWyWg92l30ZQL+MSfi4LTYKqAz8YXvc+KtSTma9hnLJgbhXjBIPIRxbiCuVdabbgCl0M+sPshE8PQYWV2zWGd7Vf5nB7jBmJ72ZwCQtktV+d782A8dyFY+idZSOyr8lytwkv3U8Tz2SQFQDPmqYDZT1gO2j6inriIIDDSpMu6vgrNtcvygY0uEq64xBHZTUOiRd+ZmbG2vLcL2lZaAivYupSwlFyKpQ+uBB0544ZAJ3KZf5NR5oei0ku6o/aGh+I+hojFQIn8lt4VbeCJFt5O8XLktcPtfirg0jZEyZU7aN//fZnX5N4h+N8IBLhnX3OrqEx03vBHcaFm8WVwa/Yb7m9qFW77gRwAC700Z7/v0ABFp979ugrpumYMkO+RXMiurFfpCOv7zH+Ax4X64yU42JmZa2P104cfOCWd1IczR4po3MgElL1DFaNyQUSXlqBshN9gHOYHHRDhMOMiHQWNrabEp13dxiFUYlux6y9PrfwjozXu0R4mitJTKzjcOQx+TRxjoU+a8QHoNbPU+nH6ES2lKQuvJifOdnv4vsn4fBFi8FLVG0My1F9aL58vFzVatPwB/HrjoFTuXjZRSGPU3Q3aIypFgSXhodUxbl+B4i3LUwOP0uY0XgtKAjM70rBuDPlNaADeeADOfKzAxChwElKtlSMDAOzdS79Ezw/vs4rdjKQtr0bbxBDCXN/FE0MsqwKOkCpC/FCZ3ejfpJxqDz/+v5nDFNsNgQT8QdDI86FytHSLdZP/VT+7J5QBC62wsUrbRwd5BT55+BPBKfGbzcPbE9u35UbPDrv84eB1WlbKnLUpOX//38JS/49mEvkf1sjNH5pLsRiDnazyAe/BPty9xU74RQm9k82UsQ2QJmGKeg8M7Ya47BwFpSUgsUAZpm36h5j6Fziu/7cYEjpco7B51bEnQdT8Fba6St5Q0Vort9mvS5gkNSnQUnRem8eucZ6H1zEPEGIVRhRnNz6clIsM67I3Ag+YPuvPK8r6q7pEuRGFzgBzBNH9jx7yU686eY7LzQVW0IHPXWEEj3ie0MLd1U6xNE7N13uzD7iLhwqSCuLTprK7GMnGB5wqifijf7RNZYUDUn5sq3TpiOu2r6uF6gg4wqZ2MfkK7dYsFFe0um1/XrnmX43agswD2jcSNed8fN3EQ2qb4GM431oJyiIYkEHFnU+ChkiTdejnSG+TIUzIzqKuWhDtNnmsSpIQiHEEN3UB8ech/6HeshXqfFqzqbAQ3VYaum67yFnrtRgwAym+VD9SmFwwo2LP2PfUjK8pD0LXtI24LtftMcuypSLDvehRagyBiHdV9KM5x+8EgvvyhPMGnMxDg3IRBwc8uEeRmSRJ5I7vBMezkzkSHNEg8vIotk21w8U/+8qhKgUABwuhNQb79Hc6sE95iH8hk0nwsEXn0cwWDjibNyP5Om28YS5liLUabAMs2hE1jDwEviY150jZX/t5Z/21W/8PSoyvVMZ9oyBXd4B6J7+SkiQjQxiO56EWMPqnDAMb3GbGXABVqKOfARnFjpoI1SA3ZtZ/N7JTZkQdaw1CTEFkAYjLCWPV6/TpAr3sCWKJ9I5aZC3uziJk200fPcj3tlEYzP8vQ1LJ9dkYbvNaALAgTjIH0T9uioPE6OlhDxzLBF73It+4C+ze0TfKqKB1iUdK4I8hl8FPviFQLkwfxG1yBg0NPZhmRf2dQGwOQG/dolDPIfdeIvR7qSfiyFrm7zqPIhn2p7KOhUcfIzyh1yXc+1lJcO8mJziFgcfUerG18kBwWwm03vV6LZS3QrVH7K8hkvWVkW9Bmr0YBkkzQ23504VDz67UY046P+2CzvkABzimxFCOZhPE3S8HSfe00ziJo2A0fwg/319eAoor5ASbhL4N1bZ4c+pZvAqcFNSV6vD39Be0xzgJ+pMKD+RjkQU3cwuFukecC5tzD/UuiYymEHm6REVAvEONwt3dfrj80cqa8lBilmQxmmmqAp4CNMz7VsrpxSliNO+9xyKFkEb5i/typA4BJqxuujdHwGg4jutWxuH0s9/Kro7d3cP080r1LuEm+7TfZwEBdTj4kyLKmaCSvuQuGoZgDhYOjy8OXxe/oB6XbnI3HdOi/hPk13aa+xaBSv0XIYIlVo+RmpmRKf4eYf7qsQdhClRn5P1KKg+q/PG0j9l+kaj45fjO3iiFqSqboI9VOil+2p1F19olvoVpNIbqlEt03g8ZjdvYdGk/jeIbHf0DWYYHgCDEHs7ybjvwQL9e29vjcWn80l4cPLOb1K0CSph/NMrQwZDXhav16kBd62bbF71C7Pz9m7KUjvE1ZyYofYRjkYuPO2hfQ5BZTxv6bcM4ifaXlBVS9j0X+MnW+RYypAuFXWRbXfpWehd8oFepCyZdeuVLtmYhkMaXkPM33CBKe+BoN9K/KiAeViKjRhZHJQQAcFZS1pXWkpkHnOWSh2MwnRP6+nyEODj8TqBvnrtGrg7ElErmgl4TebMagljJW/6PgcHNkxpC+d+2mZQYbLCNEBg0nuxfXsh/D5VjyER9fg9ArsrwjZgAfquRvKouA8eNhBdS/UY2lSZwF8rLE/NRvpKSxogkJL3reFau9AJZL/d1QwXNTq0/tVfuQ3Pzrh0Ov3qwT9iWBfATUGivckvZcMCvxeB9hVNiQNIkrGfQ1VrvSALtcdVnVTyJAaIQCeGW6lV0Jpfev0NZ1xMIOUCI9ZSmYlMRy/P2mPy5YuUjjPBcU/WdiUgV2R68IYEQSKB3rU84judzhZX38faYxgCBh4xwtPwUG53+2PjgRGhoyKYfTmsnw53ZOwURT5pP+srtB1zI4AnBrR8ET385dso+JdlfAzZXXe9SRaaWzg16CUJxZBfuNorx/3x73k3dr2ei0j/QD6DErHOLcYWAWTVvRYs4jAa0NnUNm4D9u4bhaEnI1cr04RRPZam4gyqJAcRhr8JOiIWq7aldisiFB3NxWCbJUfEi9+lD5O9uIpvtbdFF+38GC/NOSB0nHV+nq9TJtB/+87767kVpKkZ96A4Bpt/+X/OdnSWM5nrnsCm2kPH09IOB5iaY7couho2q5GCkjI5CkZfoegQfbltoB3PRgoLnXGiUQk5arSxbhH1KlmDy0VT9QHcs4yteRLF8d6P9smlVWGY4inhRZ7D1B4yVXAL2c3gUZjLhCv4cdD1Iace1CANWtNiE4imxmf2l2MIXw1FJ55XUwlsEg4Mpl5Dw6IYtdnB/s5bqjV8WCKRmuuVIyPnmCCMfmnPTg2zjOBoyw5/tt+yPWrXmFgaOuLG9cNi/opdtwp7uNWpF/qgbbU0qYItVthlbnrUKwbS4Jp7VIxs5mNg8wXcJH8+mrWpZMcq97WP2Q78d1F3IPKb/3rpOXzGoXUVP+nar3xD/HEiu3MV0z1XFRknv/UDBxWy+N0Hm24L3v/NjmEvlaFdBTfPLTZrufFnjerE6rZQmQ+TqEti9ze3pW20wgx2xHj4huVpR5PowGWGtQyUHCVJFcB0xcVy2+67JmoRAFE4JnudEJBQN8V7dzyTBWrQBtB6brea9z531wR/pW6lFoKE6+YICGs8VkCUJnQ/fThg2BvfICF/dyEUelAxlBgHUffgW+c5Fchghm/gqtUDxHKOvEmwrF6h31bdz5Ao7gR8PGbupETXTQjYphAEr92cJpbWf5yDkM+kuda2l4YMVDVQC3uaDHOnhK5JfM0Tu4rnHZKaw9ErLOsZt6e9eH34K3JakaB660PgeYz2k9xctQc8DJq9L/UV4eAGmN1aJzTm9fD4lDfiAprn+ZhmkERqZ28wj7vKv7U93yUN/tNf7SAmgF3EEjum1N6vTdy+l2FABCIEiFtb/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" lazyload class="img-fluid" alt="支付宝"><p class="text-center">支付宝</p></div></div><div class="comments-note">- ( ゜- ゜)つロ 填写QQ邮箱自动获取头像亦更快获得回复通知</div><article id="comments" lazyload><div id="waline"></div><script type="text/javascript">Fluid.utils.loadComments("#waline",(function(){Fluid.utils.createCssLink("https://lib.baomitu.com/waline/2.14.5/waline.min.css"),Fluid.utils.createScript("https://lib.baomitu.com/waline/2.14.5/waline.min.js",(function(){var i=Object.assign({serverURL:"https://comment.ganxb2.com",path:"window.location.pathname",meta:["nick","mail","link"],requiredMeta:["nick","mail"],lang:"zh-CN",emoji:["https://testingcf.jsdelivr.net/gh/walinejs/emojis@1.1.0/weibo"],dark:'html[data-user-color-scheme="dark"]',wordLimit:300,pageSize:10,imageUploader:!1,locale:{level0:"旅行者 lv↑",level1:"炼气 lv2",level2:"筑基 lv3",level3:"金丹 lv4",level4:"元婴 lv5",level5:"化神 lv6"}},{el:"#waline",path:window.location.pathname});Waline.init(i),Fluid.utils.waitElementVisible("#waline .wl-cards .wl-item",()=>{setTimeout(()=>{Fluid.events.checkLink("#waline .wl-cards .wl-item a")},1500)}),Fluid.utils.waitElementVisible("#waline .vcontent",()=>{var i="#waline .vcontent img:not(.vemoji)";Fluid.plugins.imageCaption(i),Fluid.plugins.fancyBox(i)})}))}))</script><noscript>Please enable JavaScript to view the comments</noscript></article><div class="comments-note margin-bottom0">评论区显示<strong>“刷新”</strong>,多点几下或过会儿再来康康 _(≧∇≦」∠)_</div><div></div></div></article></div></div><div class="side-col d-none d-lg-block col-lg-2"><aside class="sidebar" style="margin-right:-3rem"><div id="toc" class="animate__fadeInUpBig animate__animated"><p class="toc-header"><i class="iconfont icon-list"></i> 目录</p><div class="toc-body" id="toc-body"></div></div><div class="animate__fadeInUpBig animate__animated animate-delayThird"><a class="sponsors-aside-text" href="./feed/">Sponsors</a><div class="sponsor-container special"><a href="./feed/" class="sponsor-item action">成为赞助商</a></div></div></aside></div><div class="snow-section"></div></div></div><div class="palette-button-wrap"><div class="wrap wrap1"><a href="javascript:void(0);" class="palette-button"><span>小程序</span> </a><img class="qr-img" src="https://article.biliimg.com/bfs/article/b45cc97e6da8a2b036acd0e05f541716e2695ab0.jpg@1e_1c.webp" srcset="data:image/jpeg;base64,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" lazyload alt="廿壴博客小程序体验版"></div><div class="wrap wrap2"><a href="javascript:void(0);" class="palette-button"><span>公众号</span> </a><img class="qr-img is-update-src" src="/img/wxgzh2.webp" srcset="data:image/jpeg;base64,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" lazyload alt="廿壴博客微信公众号"></div><div class="wrap wrap3"><a href="javascript:void(0);" class="palette-button"><span>小波微博</span> </a><img class="qr-img is-update-src" src="/img/about/weibo_gump.webp" srcset="data:image/jpeg;base64,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" lazyload alt="小波微博"></div><div class="wrap wrap4"><a href="/about/#已知BUG" class="palette-button"><span>我要反馈</span></a></div></div><a id="scroll-top-button" aria-label="TOP" href="#" role="button" class="animate__fadeInLeft animate__animated animate-delay"><i class="iconfont icon-arrowup" aria-hidden="true"></i></a><div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel" aria-hidden="true"><div class="modal-dialog modal-dialog-scrollable modal-lg" role="document"><div class="modal-content"><div class="modal-header text-center"><h4 class="modal-title w-100 font-weight-bold">搜索文章[Discovery]</h4><button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button></div><div class="modal-body mx-3"><div class="md-form mb-5"><input type="text" id="local-search-input" class="form-control validate"> <label data-error="x" data-success="v" for="local-search-input">关键词</label></div><div class="list-group" id="local-search-result"></div></div></div></div></div></main><footer><div class="footer-inner"><div class="beian"><span>©2011-2024 廿壴(GANXB2) 版权所有</span> <span><a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank" rel="nofollow noopener noreferrer external">蜀ICP备19026443号 </a></span><span><a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=44030902003502" rel="nofollow noopener noreferrer external" class="beian-police" target="_blank"><span style="visibility:hidden;width:0">|</span> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAC3FBMVEUAAAD+/ODz6Kr//+PeqFfYrn3x167k0JXoxnyaaVzhs2ifaFXbrGLkvFnpyF7v2X/kwm3cp1nhsGfqw3rZqG3ntVzjrFPt3oDjvGnfr2fbnFGti3q0lH7ktoLryXn9v1T4znr/74bnvGz034v+2I/ktoDz6ZLkwY/Dfz7buoftzYbq2IPr0pjs3bLv6KPRrnbKhFv79ND488n/+dDZr4Lx38f/+cH/95f42oL7/97s2Y3++uzw1rvTk3DmuloAAHkBAm7uzWYAAGXktV3qvFr/0ljksE7fo0rWHxhrdocAAIAABHf143Pyy27w1GwGA2jtymHpwWDqxV/qyVyTeFrrwFflwFPislP+xVLpsErbmUfVkEbysETemUTpgj7ThT3XdTg5FDjdhTXWZTDaTCm7TCbTOCLXPiD9LA/QFg3UAwnOAQOEj5kcPpdyhZSptJEACJFpfo4AG44XMInFvYfTvIejmYSVkINyeoJzdoK9un6SjX7FrnwAEHp8enny2HjWwHjKtnhcX3jYzHeNhnfu2HWUjHWsonPNwnH70m9WTm8AAW//723pym3dtmn/0mbnxGa0o2ZeWWb8zGT/4mPtwmJuYmL/22D/vmB5ZGC9kF7/2l0MAF3uyFqnjVn4xFjYnli0mVi5i1jiqVfyyVbmtlbXkVNUOFPlvFLpt1LNrFKjfVLuvlBgHlDsuU/ouU9ONU/ov05ODk7/2E02Gk3jqkqEaUr/tUngjkf7n0bXikb6xERCJETdn0LckUG1gD/ooD3Ulj3jkz3TZT3WjjzOeDqBWDr3pDnglTlMADnbbTf2gjbkbzaTYDZpAjbplzTtcTTEazPXXzOeXzDscS3MPi38jizJWSrVSCrrXynzfCjVdCjZRyjTQCbFUiTlYCPXPSHLPSHWMR/wXh7iRh7GPh3PLBrSIRrWGhfMJxPGJxPRDBG/ABG2ABCxDg7BDAvEGArZAAbJAALPAADa4ry/AAAAPnRSTlMACEIaxqxpAvv7+ff19PDs7Ovn5uXk5OHg29LRy8fEw8G+vLqysaufnJiVk4yDfG9dXFpMSEFBNTApJyEcFO3QiBQAAAFzSURBVBjTYoACZjYZaTZmBmRgxsp9+di21ZysxggxxlmJZy/ev9LXnriIEa5VYUPIray0lOyd+ctVoKKWXFsmXXvu8exO5vsZnnuErcCC5m1e8x5nPXrxOu3TzSqHFguQmI18tff+Jx89HqR7fE5v7q5TtAYK6h8v81p4Ovv6wbAdmRc6HMpddYGCmudrCqbtTn2anHBq15SZ9iUx6kBBkSTfXIfUuBsPL909c9i/uP6EJFAQMJ6j2/Ps32Yk30uIy3jjXxgRLwEUVN07ubTo5LsPr16mXD1X29gZrgUUlN23uD/H28lp09o5TvYVs523ygEFORYsO+TbEOI5cVVTV+XUA1Fu/EBBoxXu0bfnT98cEePa45oUHR7MBHK9IV9Y/BFHFzc7R7/YqF4BsBiDqVBw0NLQoMAAF3c7vwmCEEFln1ZnZxe3wJWx7nZ2jj5qkNDU5l2/ZE3kusjQuRsDxPXYoQFqa6DBIiUmyqKkYwIWAgD35oZAL/mkFwAAAABJRU5ErkJggg==" srcset="data:image/jpeg;base64,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" lazyload alt="police-icon"> <span>粤公网安备 44030902003502号</span></a></span></div><div class="footer-nav"><dl><dt>解决方案:</dt><dd>全栈/小程序/公众号开发</dd><dd>WEB/APP/PPT/DM设计</dd><dd>搜索引擎优化(SEO)</dd><dd>照片/视频后期</dd></dl><dl><dt>独自探索:</dt><dd><a class="is-update-src" href="/categories/编程/前端" rel="category">WEB前端</a></dd><dd><a class="is-update-src" href="/categories/设计/" rel="category">WEB设计</a></dd><dd>设计素材</dd><dd>视频素材</dd></dl><dl><dt>未来可期:</dt><dd><a class="is-update-src" href="/61958.html" rel="bookmark">廿壴TODO</a></dd><dd><a class="is-update-src" href="/baidusitemap.xml">百度地图</a></dd><dd><a class="is-update-src" href="/sitemap.xml">网站地图</a></dd></dl></div><div class="statistics"><span id="leancloud-site-pv-container" style="display:none">总访问量 <span id="leancloud-site-pv"></span> 次 </span><span id="leancloud-site-uv-container" style="display:none">总访客数 <span id="leancloud-site-uv"></span> 人</span></div><div class="footer-content"><a href="https://hexo.io" target="_blank" rel="nofollow noopener noreferrer external"><span>Hexo</span></a> <i class="iconfont icon-heart">❤</i> <a href="https://blog.ganxb2.com"><span>廿壴(GANXB2)</span></a> <i class="iconfont icon-heart">❤</i> <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener noreferrer external"><span>Fluid</span></a></div><div class="go-blog"><svg width="121" height="32" viewBox="0 0 131 42" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0.5 0.5H116C124.008 0.5 130.5 6.99187 130.5 15V41.5H15C6.99187 41.5 0.5 35.0081 0.5 27V0.5Z" fill="black" stroke="#ACACAC"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M32.8705 21.5C32.8705 26.6752 28.6752 30.8705 23.5 30.8705C18.3248 30.8705 14.1295 26.6752 14.1295 21.5C14.1295 16.3248 18.3248 12.1295 23.5 12.1295C28.6752 12.1295 32.8705 16.3248 32.8705 21.5ZM35 21.5C35 27.8513 29.8513 33 23.5 33C17.1487 33 12 27.8513 12 21.5C12 15.1487 17.1487 10 23.5 10C29.8513 10 35 15.1487 35 21.5ZM18 24.7606C21.4984 27.7465 26.5016 27.7465 30 24.7606L28.6474 23C25.9376 25.3128 22.0624 25.3128 19.3526 23L18 24.7606ZM19 21V18H21V21H19ZM26 18V21H28V18H26Z" fill="white"></path><path d="M51.5548 15.9804C50.8705 15.6078 49.7231 15.1373 48.5858 14.7745L49.0588 14.2843C50.1961 14.6373 51.4341 15.098 52.1688 15.4706L51.5548 15.9804Z" fill="white"></path><path d="M43 15.4608C44.0769 15.2059 45.4255 14.7059 46.0999 14.2843L46.7943 14.7157C45.9489 15.2157 44.6003 15.7255 43.5234 16C43.4126 15.8529 43.161 15.598 43 15.4608Z" fill="white"></path><path d="M57.2872 7.20854C57.2887 7.14125 57.2901 7.07757 57.2916 7.01961H58.127L58.126 7.06206C58.1179 7.41233 58.107 7.88543 58.062 8.43623C58.2039 9.58915 58.8167 13.7476 62.4044 15.3039C62.183 15.4706 61.9615 15.7255 61.8508 15.9314C59.3205 14.7799 58.2303 12.3598 57.7354 10.5279C57.2612 12.4903 56.1895 14.6847 53.7288 15.9706C53.5979 15.7745 53.3463 15.549 53.1148 15.3922C57.1495 13.4035 57.2497 8.89545 57.2872 7.20854Z" fill="white"></path><path d="M63.753 15.8039C64.679 14.2353 64.8199 11.902 64.8199 10.3039V8.20588H72.2475V7.52941H64.0751V10.3039C64.0751 11.8235 63.9845 13.9314 63.0988 15.4314C63.2901 15.5 63.6121 15.6863 63.753 15.8039Z" fill="white"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M68.0908 8.31373C68.0001 8.57897 67.8525 8.92173 67.7036 9.22549H65.7257V12.7843H68.1915V15.1863C68.1915 15.3039 68.1512 15.3431 68.0003 15.3529C67.8493 15.3529 67.3259 15.3529 66.7321 15.3431C66.8328 15.5294 66.9334 15.8039 66.9636 15.9902C67.7486 15.9902 68.2418 15.9902 68.5437 15.8824C68.8457 15.7745 68.9262 15.5784 68.9262 15.1961V12.7843H71.4423V9.22549H68.518C68.6648 8.98303 68.8161 8.7085 68.9564 8.44118L68.0908 8.31373ZM66.4705 11.2745H70.6774V12.2059H66.4705V11.2745ZM66.4705 9.81373H70.6774V10.7255H66.4705V9.81373Z" fill="white"></path><path d="M69.7817 13.6078C70.3855 14.2353 71.1907 15.1176 71.5732 15.6373L72.2072 15.2549C71.7946 14.7451 70.9894 13.8922 70.3755 13.2941L69.7817 13.6078Z" fill="white"></path><path d="M66.4805 13.2745C66.0377 13.9314 65.3734 14.6765 64.7695 15.1765C64.9507 15.2745 65.2627 15.4706 65.4137 15.5784C65.9773 15.049 66.6818 14.2255 67.1951 13.5098L66.4805 13.2745Z" fill="white"></path><path d="M80.9835 15.2745C81.1747 15.2647 81.2552 15.2059 81.2552 15.0294V7.13725H82V15.0294C82 15.5196 81.8692 15.7255 81.5471 15.8431C81.215 15.9608 80.6514 15.9706 79.7154 15.9706C79.6751 15.7843 79.5543 15.4608 79.4436 15.2647C80.1481 15.2941 80.7923 15.2843 80.9835 15.2745Z" fill="white"></path><path d="M76.8772 13.0392C77.0009 12.8928 77.0936 12.4211 77.1689 11.2255H74.985V14.7745C74.985 15.1471 75.0756 15.2157 75.5889 15.2157H77.3502C77.8132 15.2157 77.8937 15.0098 77.944 13.8333C78.105 13.9608 78.407 14.0784 78.6083 14.1176C78.5177 15.4804 78.2963 15.8627 77.4005 15.8627H75.5285C74.5523 15.8627 74.2503 15.6471 74.2503 14.7843V10.5686H77.9239C77.9239 10.5686 77.9138 10.7745 77.9037 10.8627C77.8132 12.5686 77.7125 13.2255 77.481 13.4706C77.32 13.6471 77.159 13.7059 76.9074 13.7255C76.696 13.7451 76.3035 13.7451 75.911 13.7255C75.8908 13.5294 75.8204 13.2647 75.7097 13.0882C76.0921 13.1275 76.4444 13.1373 76.5853 13.1373C76.7161 13.1373 76.7966 13.1176 76.8772 13.0392Z" fill="white"></path><path d="M76.4637 7.6292C76.5351 7.48879 76.6025 7.34757 76.6658 7.20588L75.9714 7C75.4379 8.26471 74.361 9.62745 73.0929 10.5196C73.2539 10.6275 73.5257 10.8824 73.6465 11.0294C74.6418 10.2761 75.4974 9.29021 76.1334 8.22706C76.9288 9.06486 77.8138 10.0904 78.256 10.7451L78.7995 10.2451C78.3152 9.55129 77.3111 8.47342 76.4637 7.6292Z" fill="white"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M43.1912 14.1275V13.5H44.6405V9.06863H47.1768V8.45098H43.473V7.81373H47.1768V7H47.9215V7.81373H51.8668V8.45098H47.9215V9.06863H50.7094V13.5H52.1285V14.1275H43.1912ZM45.3652 13.5H49.9546V12.8137H45.3652V13.5ZM45.3652 12.3431H49.9546V11.7549H45.3652V12.3431ZM45.3652 11.2745H49.9546V10.6961H45.3652V11.2745ZM45.3652 10.2353H49.9546V9.58824H45.3652V10.2353Z" fill="white"></path><path d="M79.2826 13.5784V8.12745H80.0072V13.5784H79.2826Z" fill="white"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M105.32 26.2505C105.32 25.9898 105.336 25.4196 105.336 25.4196H101.424V23.8717H105.573C105.764 26.2238 106.11 28.471 106.651 30.2984C105.776 31.2876 104.759 32.1157 103.612 32.7515C104.107 33.2077 104.953 34.2016 105.288 34.7067C106.138 34.1597 106.93 33.5082 107.658 32.7639C108.338 33.9391 109.193 34.6415 110.254 34.6415C111.898 34.6415 112.649 33.9572 113 30.78C112.377 30.5356 111.563 29.9817 111.036 29.4277C110.956 31.4155 110.765 32.2301 110.445 32.2301C110.06 32.2301 109.67 31.686 109.312 30.7655C110.465 29.1244 111.389 27.1985 112.058 25.0611L109.711 24.4908C109.396 25.6095 108.983 26.659 108.478 27.6243C108.264 26.4884 108.09 25.2105 107.974 23.8717H112.84V21.5418H111.142L111.946 20.6945C111.387 20.1568 110.27 19.4399 109.455 19L108.05 20.4175C108.553 20.7329 109.148 21.1437 109.647 21.5418H107.835C107.811 20.7923 107.808 20.0385 107.827 19.2933H105.384C105.387 20.0364 105.403 20.7892 105.433 21.5418H98.9812V26.4297C98.9812 28.5642 98.9014 31.4481 97.7199 33.3707C98.2468 33.6477 99.3006 34.5275 99.6997 35C100.514 33.7498 100.957 32.0088 101.189 30.2753C101.506 30.8638 101.745 31.7506 101.775 32.4257C102.51 32.4257 103.18 32.4094 103.612 32.3279C104.091 32.2301 104.458 32.0672 104.809 31.5947C105.192 31.0733 105.272 29.5743 105.32 26.2505ZM101.197 30.2141C101.316 29.3052 101.378 28.4 101.406 27.5703H103.058C103.023 29.1922 102.963 29.8644 102.829 30.0631C102.701 30.2261 102.558 30.2749 102.35 30.2749C102.102 30.2749 101.674 30.2596 101.197 30.2141Z" fill="white"></path><path d="M86.8673 22.112C87.1314 21.4187 87.3672 20.705 87.565 19.9939L85.1541 19.4399C84.6112 21.6395 83.5893 23.8717 82.3599 25.2077C82.9507 25.5336 83.9885 26.2342 84.4515 26.6415C84.9297 26.0332 85.4007 25.2744 85.839 24.4257H88.9062V26.9185H84.7709V29.1996H88.9062V32.002H82.8708V34.3157H97.4005V32.002H91.3332V29.1996H95.9156V26.9185H91.3332V24.4257H96.5543V22.112H91.3332V19.277H88.9062V22.112H86.8673Z" fill="white"></path><path d="M47.3436 28.4645C47.4377 28.0285 47.4856 27.6141 47.4988 27.2444H43.8462V25.11H47.5026V23.4807H43.6866V21.2811H47.5026V19.3585H49.8018V27C49.8018 29.8513 48.9396 33.0611 45.0278 34.9837C44.6446 34.4134 43.9261 33.6802 43.3672 33.224C44.7784 32.6761 45.7414 31.786 46.3804 30.8057C45.6568 30.9237 44.9507 31.0375 44.2921 31.1436L43.4151 31.2851L43 28.9226C44.1273 28.8236 45.7056 28.6496 47.3436 28.4645Z" fill="white"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M72.6755 34.3305L67.632 19.7976H64.2697L59.1875 34.3305H62.2986L63.2841 31.3431H68.5306L69.4484 34.3305H72.6755ZM65.9218 23.1202L67.6996 28.8388H64.0861L65.9218 23.1202Z" fill="white"></path><path d="M53.7456 19.3585V21.2811H57.9289V23.4807H53.7456V25.11H57.5457V27.2444H53.7456V28.9063H58.2163V31.1059H53.7456V34.7556H51.4144V19.3585H53.7456Z" fill="white"></path><path d="M75.2125 22.2696V31.8618H73.4582V34.3339H79.719V31.8618H78.169V22.2696H79.719V19.7976H73.4582V22.2696H75.2125Z" fill="white"></path></svg> <a href="https://www.foreverblog.cn/go.html" target="_blank" rel="nofollow noopener noreferrer external" title="穿梭虫洞-随机访问十年之约友链博客" style="margin-right:15px"><img src="https://img.foreverblog.cn/wormhole_1_tp.gif" srcset="data:image/jpeg;base64,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" lazyload alt="穿梭虫洞-随机访问十年之约友链博客" style="width:78px;height:32px"></a><a href="https://www.travellings.cn/go.html" target="_blank" rel="nofollow noopener noreferrer external" title="开往-友链接力"><img src="https://www.travellings.cn/assets/logo.gif" srcset="data:image/jpeg;base64,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" lazyload alt="开往-友链接力" style="width:120px;height:30px"></a></div><div class="yiyan hint--top click-effect" aria-label="点按切换下一言"><p class="yiyan-hitokoto">『 <span></span> 』</p></div></div></footer><div class="full-loading animate__fadeOutRight fade-animate"><svg data-v-e8b18a40="" width="1440" height="900" viewBox="0 0 1440 900" fill="none" xmlns="http://www.w3.org/2000/svg" class="waves"><path class="--i:1" data-v-e8b18a40="" d="M733.481 307.489L749.334 315.634C753.198 317.618 757.441 318.755 761.779 318.968L779.581 319.841C789.083 320.307 797.776 325.326 802.931 333.322L812.588 348.302C814.941 351.953 818.047 355.059 821.698 357.412L836.678 367.069C844.674 372.224 849.693 380.918 850.159 390.419L851.032 408.221C851.245 412.559 852.382 416.802 854.367 420.666L862.512 436.519C866.859 444.981 866.859 455.02 862.512 463.481L854.367 479.334C852.382 483.198 851.245 487.441 851.032 491.779L850.159 509.581C849.693 519.083 844.674 527.777 836.678 532.931L821.698 542.588C818.047 544.941 814.941 548.047 812.588 551.698L802.931 566.678C797.776 574.674 789.083 579.693 779.581 580.159L761.779 581.032C757.441 581.245 753.198 582.382 749.334 584.367L733.481 592.512C725.019 596.859 714.981 596.859 706.519 592.512L690.666 584.367C686.802 582.382 682.559 581.245 678.221 581.032L660.419 580.159C650.917 579.693 642.224 574.674 637.069 566.678L627.412 551.698C625.059 548.047 621.953 544.941 618.302 542.588L603.322 532.931C595.326 527.777 590.307 519.083 589.841 509.581L588.968 491.779C588.755 487.441 587.618 483.198 585.633 479.334L577.488 463.481C573.141 455.02 573.141 444.981 577.488 436.519L585.633 420.666C587.618 416.802 588.755 412.559 588.968 408.221L589.841 390.419C590.307 380.918 595.326 372.224 603.322 367.069L618.302 357.412C621.953 355.059 625.059 351.953 627.412 348.302L637.069 333.322C642.224 325.326 650.917 320.307 660.419 319.841L678.221 318.968C682.559 318.755 686.802 317.618 690.666 315.634L706.519 307.489C714.981 303.141 725.019 303.141 733.481 307.489Z" stroke="white" stroke-opacity="0.5"></path><path class="--i:2" data-v-e8b18a40="" d="M791.831 251.669L813.362 271.187C817.635 275.061 822.686 277.977 828.177 279.741L855.845 288.628C867.973 292.523 877.478 302.028 881.373 314.156L890.26 341.824C892.024 347.315 894.94 352.366 898.814 356.639L918.331 378.17C926.887 387.607 930.366 400.591 927.675 413.042L921.538 441.446C920.32 447.084 920.32 452.916 921.538 458.554L927.675 486.958C930.366 499.409 926.887 512.393 918.332 521.83L898.814 543.36C894.94 547.634 892.024 552.685 890.26 558.176L881.373 585.844C877.478 597.972 867.973 607.477 855.845 611.372L828.177 620.259C822.686 622.023 817.635 624.939 813.362 628.813L791.831 648.33C782.394 656.886 769.41 660.365 756.959 657.674L728.555 651.537C722.917 650.319 717.085 650.319 711.447 651.537L683.043 657.674C670.592 660.365 657.608 656.886 648.171 648.33L626.64 628.813C622.367 624.939 617.316 622.023 611.825 620.259L584.157 611.372C572.029 607.477 562.524 597.972 558.629 585.844L549.742 558.176C547.978 552.685 545.062 547.634 541.188 543.36L521.671 521.83C513.115 512.393 509.636 499.409 512.327 486.958L518.464 458.554C519.682 452.916 519.682 447.084 518.464 441.446L512.327 413.042C509.636 400.591 513.115 387.607 521.67 378.17L541.188 356.639C545.062 352.366 547.978 347.315 549.742 341.824L558.629 314.156C562.524 302.028 572.029 292.523 584.157 288.628L611.825 279.741C617.316 277.977 622.367 275.061 626.64 271.187L648.171 251.669C657.608 243.114 670.592 239.635 683.043 242.326L711.447 248.463C717.085 249.681 722.917 249.681 728.555 248.463L756.959 242.326C769.41 239.635 782.394 243.114 791.831 251.669Z" stroke="white" stroke-opacity="0.5"></path><path class="--i:3" data-v-e8b18a40="" d="M880.436 217.358L902.825 252.091C906.722 258.135 911.864 263.278 917.909 267.174L952.641 289.564C966.058 298.213 974.481 312.801 975.262 328.744L977.286 370.018C977.638 377.201 979.521 384.226 982.807 390.623L1001.69 427.379C1008.99 441.577 1008.99 458.423 1001.69 472.621L982.807 509.377C979.521 515.774 977.638 522.799 977.286 529.982L975.262 571.255C974.481 587.199 966.058 601.787 952.641 610.436L917.909 632.826C911.864 636.722 906.722 641.865 902.825 647.909L880.436 682.642C871.787 696.058 857.199 704.481 841.255 705.263L799.982 707.286C792.798 707.639 785.773 709.521 779.377 712.807L742.621 731.692C728.422 738.987 711.577 738.987 697.379 731.692L660.623 712.807C654.226 709.521 647.201 707.638 640.018 707.286L598.744 705.263C582.8 704.481 568.212 696.058 559.563 682.642L537.174 647.909C533.278 641.865 528.135 636.722 522.09 632.826L487.358 610.436C473.941 601.787 465.519 587.199 464.737 571.255L462.713 529.982C462.361 522.799 460.479 515.774 457.192 509.377L438.308 472.621C431.013 458.422 431.013 441.577 438.308 427.379L457.192 390.623C460.479 384.226 462.361 377.201 462.713 370.018L464.737 328.744C465.519 312.801 473.941 298.213 487.358 289.564L522.09 267.174C528.135 263.278 533.278 258.135 537.174 252.091L559.563 217.358C568.212 203.941 582.8 195.519 598.744 194.737L640.018 192.714C647.201 192.361 654.226 190.479 660.623 187.193L697.379 168.308C711.577 161.013 728.422 161.013 742.621 168.308L779.377 187.193C785.773 190.479 792.798 192.361 799.982 192.714L841.255 194.737C857.199 195.519 871.787 203.942 880.436 217.358Z" stroke="white" stroke-opacity="0.5"></path><path class="--i:4" data-v-e8b18a40="" d="M1064.6 156.784L1084.82 219.741C1088.32 230.655 1094.12 240.695 1101.82 249.189L1146.23 298.18C1163.45 317.174 1170.45 343.306 1165.04 368.365L1151.07 432.998C1148.65 444.203 1148.65 455.797 1151.07 467.002L1165.04 531.635C1170.45 556.694 1163.45 582.826 1146.23 601.82L1101.82 650.811C1094.12 659.304 1088.32 669.345 1084.82 680.259L1064.6 743.216C1056.76 767.625 1037.62 786.755 1013.22 794.595L950.259 814.817C939.345 818.323 929.304 824.119 920.811 831.819L871.82 876.23C852.826 893.449 826.694 900.451 801.635 895.036L737.002 881.07C725.797 878.649 714.203 878.649 702.998 881.07L638.365 895.036C613.306 900.451 587.174 893.449 568.18 876.23L519.189 831.819C510.696 824.119 500.655 818.323 489.741 814.817L426.784 794.595C402.375 786.755 383.245 767.625 375.405 743.216L355.183 680.259C351.677 669.345 345.881 659.304 338.181 650.811L293.77 601.82C276.551 582.826 269.549 556.694 274.964 531.635L288.93 467.002C291.351 455.797 291.351 444.203 288.93 432.998L274.964 368.365C269.549 343.306 276.551 317.174 293.77 298.18L338.181 249.189C345.881 240.695 351.677 230.655 355.183 219.741L375.405 156.784C383.245 132.375 402.375 113.245 426.784 105.405L489.741 85.1831C500.655 81.6773 510.696 75.8806 519.189 68.181L568.18 23.7699C587.174 6.55108 613.306 -0.451049 638.365 4.96371L702.998 18.9296C714.203 21.3509 725.797 21.3509 737.002 18.9296L801.635 4.96371C826.694 -0.451049 852.826 6.55107 871.82 23.7699L920.811 68.181C929.304 75.8806 939.345 81.6773 950.259 85.1831L1013.22 105.405C1037.62 113.245 1056.76 132.375 1064.6 156.784Z" stroke="white" stroke-opacity="0.5"></path><path class="--i:5" data-v-e8b18a40="" d="M1282.21 167.358L1287.75 280.271C1288.31 291.721 1291.31 302.919 1296.55 313.116L1348.21 413.669C1359.92 436.473 1359.92 463.527 1348.21 486.331L1296.55 586.884C1291.31 597.081 1288.31 608.279 1287.75 619.729L1282.21 732.642C1280.95 758.248 1267.43 781.678 1245.88 795.568L1150.86 856.819C1141.23 863.03 1133.03 871.228 1126.82 880.863L1065.57 975.88C1051.68 997.428 1028.25 1010.96 1002.64 1012.21L889.728 1017.75C878.278 1018.31 867.079 1021.31 856.883 1026.55L756.33 1078.21C733.526 1089.93 706.472 1089.93 683.668 1078.21L583.115 1026.55C572.918 1021.31 561.72 1018.31 550.269 1017.75L437.357 1012.21C411.751 1010.96 388.321 997.429 374.43 975.88L313.18 880.863C306.969 871.228 298.771 863.03 289.135 856.819L194.118 795.568C172.57 781.678 159.043 758.248 157.788 732.642L152.252 619.729C151.69 608.279 148.69 597.081 143.451 586.884L91.7889 486.331C80.0729 463.527 80.0729 436.473 91.7889 413.669L143.451 313.116C148.69 302.919 151.69 291.721 152.252 280.271L157.788 167.358C159.043 141.752 172.57 118.322 194.118 104.432L289.135 43.1812C298.771 36.9699 306.969 28.7721 313.18 19.1366L374.431 -75.8803C388.321 -97.4285 411.751 -110.956 437.357 -112.211L550.27 -117.747C561.72 -118.309 572.918 -121.309 583.115 -126.548L683.668 -178.21C706.472 -189.926 733.526 -189.926 756.33 -178.21L856.883 -126.548C867.079 -121.309 878.278 -118.309 889.728 -117.747L1002.64 -112.211C1028.25 -110.956 1051.68 -97.4285 1065.57 -75.8804L1126.82 19.1366C1133.03 28.7721 1141.23 36.9699 1150.86 43.1812L1245.88 104.432C1267.43 118.322 1280.95 141.752 1282.21 167.358Z" stroke="white" stroke-opacity="0.5"></path></svg><div class="go-logo"><div class="load-person"><svg class="animated" id="freepik_stories-people-flying" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 500 500" version="1.1" xmlns:svgjs="http://svgjs.com/svgjs"><g id="freepik--background-simple--inject-4" class="animable animator-hidden" style="transform-origin:240.44px 250.609px"><g id="elyea21upcmcs"><path d="M67.93,167.09s-27.88,72,11.3,144.5S199.11,422.39,263.7,455.14s131.66,16.8,163.53-36.84-11.84-91.93-11.9-168.42,11.45-96.74-30-161.36-143.06-78.93-219.9-31S67.93,167.09,67.93,167.09Z" style="fill:#fff;opacity:.7;transform-origin:248.588px 250.609px" class="animable" id="elm88a88w5bob"></path></g><path d="M445,285.55A108.58,108.58,0,0,0,439.17,221c-11.55-28.56-36.36-48.85-64.17-60.69-40.41-17.2-80.07-17.53-112.92-51.24-10.13-10.4-18.63-22.31-29-32.5-30.51-30-75.19-26.39-108.54-2.57C55,123.73,29.94,222.14,33.81,303.5,35.55,340,53,374,80.57,398c62.4,54.18,168.36,45.07,240,16.79C374,393.65,432.41,344.45,445,285.55Z" style="fill:#ffc100;transform-origin:240.44px 246.243px" id="el8hf5q6e68fc" class="animable"></path><g id="el76itabf5v4r"><path d="M445,285.55A108.58,108.58,0,0,0,439.17,221c-11.55-28.56-36.36-48.85-64.17-60.69-40.41-17.2-80.07-17.53-112.92-51.24-10.13-10.4-18.63-22.31-29-32.5-30.51-30-75.19-26.39-108.54-2.57C55,123.73,29.94,222.14,33.81,303.5,35.55,340,53,374,80.57,398c62.4,54.18,168.36,45.07,240,16.79C374,393.65,432.41,344.45,445,285.55Z" style="fill:#fff;opacity:.7;transform-origin:240.44px 246.243px" class="animable" id="elu5997ijofs"></path></g></g><g id="freepik--Clouds--inject-4" class="animable animator-active" style="transform-origin:257.235px 197.331px"><path d="M81.05,135.21H63.4s1.76-4.37,15.49-2.91c0,0,6.84-7.84,16.81-7.84a8.33,8.33,0,0,1,7.13-7.39c6.81-1.32,8.13,4.75,8.13,4.75a14.89,14.89,0,0,1,11.78,0c6.75,2.67,5.38,10.46,5.38,10.46s19.48-.64,22.83,2.93H141" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:107.175px 126.046px" id="elhx4kacwvh0c" class="animable"></path><path d="M384.68,234.73h-77s3.19-7.87,27.91-5.24c0,0,12.31-14.12,30.27-14.12,0,0,.6-11,12.86-13.33s14.64,8.58,14.64,8.58,9.06-4.8,21.22,0,9.7,18.83,9.7,18.83,35.09-1.15,41.1,5.28H447.59" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:386.53px 218.222px" id="elyqj7vxz2nxd" class="animable"></path><path d="M335.07,330h61.41s-2.53-6.27-22.25-4.18c0,0-9.83-11.26-24.15-11.26,0,0-.48-8.75-10.25-10.63s-11.68,6.84-11.68,6.84-7.23-3.83-16.92,0-7.74,15-7.74,15-28-.92-32.79,4.21h18.59" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:333.59px 316.832px" id="elfkbblvvks7f" class="animable"></path><path d="M113.46,301.29H49.09c4.81-5.13,32.79-4.21,32.79-4.21s-2-11.19,7.74-15,16.92,0,16.92,0,1.9-8.72,11.68-6.84,10.25,10.63,10.25,10.63c14.33,0,24.15,11.26,24.15,11.26,19.72-2.09,22.26,4.18,22.26,4.18h-7.19" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:111.985px 288.142px" id="elzdng7j2hr5" class="animable"></path><path d="M196.3,205.16H170.48s1.51-3.73,13.22-2.48c0,0,5.83-6.69,14.34-6.69a7.13,7.13,0,0,1,6.09-6.31c5.81-1.12,6.94,4.06,6.94,4.06a12.65,12.65,0,0,1,10.05,0c5.76,2.27,4.59,8.92,4.59,8.92s16.63-.55,19.48,2.5H239" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:207.835px 197.341px" id="elct1s38tng8t" class="animable"></path><line x1="84.13" y1="135.21" x2="87.07" y2="135.21" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:85.6px 135.21px" id="el4av9xa8ioj" class="animable"></line><line x1="103.33" y1="135.17" x2="130.3" y2="135.17" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:116.815px 135.17px" id="elws27v4b2zxr" class="animable"></line><line x1="202.39" y1="204.97" x2="206.08" y2="204.97" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:204.235px 204.97px" id="el95v5pskutts" class="animable"></line><path d="M194.47,80.26H168.65s1.51-3.73,13.22-2.48c0,0,5.83-6.69,14.34-6.69a7.13,7.13,0,0,1,6.09-6.31c5.81-1.12,6.94,4.06,6.94,4.06a12.65,12.65,0,0,1,10,0c5.76,2.27,4.59,8.92,4.59,8.92s16.63-.54,19.48,2.5h-6.25" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:205.98px 72.4407px" id="elhkm1o95skh6" class="animable"></path><line x1="200.55" y1="80.08" x2="204.25" y2="80.08" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:202.4px 80.08px" id="el0msmyrh483g" class="animable"></line><line x1="162.3" y1="301.29" x2="159.57" y2="301.29" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:160.935px 301.29px" id="ely3j0f50go9o" class="animable"></line><line x1="124.6" y1="301.29" x2="134" y2="301.29" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:129.3px 301.29px" id="el8tel476e67g" class="animable"></line><line x1="294.29" y1="330.04" x2="303.35" y2="330.04" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:298.82px 330.04px" id="elxym1dhrcqj" class="animable"></line><line x1="392.04" y1="234.73" x2="399.2" y2="234.73" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:395.62px 234.73px" id="elg497boclno" class="animable"></line></g><g id="freepik--character-1--inject-4" class="animable" style="transform-origin:114.77px 196.772px"><path d="M130.47,210.77S110,223.1,104.38,223.66s-18.95,0-18.95,0-2.69.82-4.49,1.53c-2,.8-6,1.83-5.12-.42s5-5.91,7.38-5.88c.59,0,2,1.18,2,1.18l14.42-1.18,8.25-3.87s-1.86-.36-4.47-.84h-.06c-5.41-1-14-2.57-15.89-2.65-2.87-.12-13.46-11.62-14.57-13s-6.76.25-8.16-.31-.48-1.88-.48-1.88A22.52,22.52,0,0,1,72.34,193c3.79-.73,3.48,2.23,3.48,2.23s11,8.08,13.24,8.08,22.68-.65,25.46-1.77c2.35-1,12.13,6.3,15.09,8.56C130.16,210.52,130.47,210.77,130.47,210.77Z" style="fill:#757575;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:97.2066px 209.509px" id="elokele9fidzs" class="animable"></path><path d="M72.9,198.54c-1.12-1.35-6.76.25-8.16-.31s-.48-1.88-.48-1.88A22.52,22.52,0,0,1,72.34,193c3.79-.73,3.48,2.23,3.48,2.23S72.68,195.86,72.9,198.54Z" style="fill:#263238;transform-origin:69.8947px 195.712px" id="elgmfgo9xmw1q" class="animable"></path><path d="M130.47,210.77S110,223.1,104.38,223.66s-18.95,0-18.95,0-2.69.82-4.49,1.53c-2,.8-6,1.83-5.12-.42s5-5.91,7.38-5.88c.59,0,2,1.18,2,1.18l14.42-1.18,8.25-3.87s-1.86-.36-4.47-.84h.09l8.9.46s-4.43-1.35-4-2.14,6,2.11,13.52-.73a22.47,22.47,0,0,1,7.64-1.67C130.16,210.52,130.47,210.77,130.47,210.77Z" style="fill:#263238;transform-origin:103.083px 218.117px" id="el4thi6onp2ur" class="animable"></path><path d="M135.25,191.48l9.31,12.44,14.8,10.93s4.95,1.31,5.57,2.58c.12.23,1,3.1.53,3-2.16-.41-3.15-1.4-3.74-1.09-1.9,1,.67,2.83,0,3-1.86.33-4.17-5.1-4.17-5.1s-12.64-7.88-15.37-9.47-12.35-9-12.35-9S132.47,192.88,135.25,191.48Z" style="fill:#bfbfbf;stroke:#263238;stroke-miterlimit:10;transform-origin:147.714px 206.917px" id="el1kc9tv535jk" class="animable"></path><path d="M148.54,201.2l1.78,3.69s1.05-1,1.05,0-6.73,7.44-9.1,6.86-2.76-1.92-2.76-1.92,3.36-7.12,4.74-7.91S148.54,201.2,148.54,201.2Z" style="fill:#ffc100;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:145.44px 206.493px" id="elcwbtt8bnoc5" class="animable"></path><path d="M112.41,194.87s22.32,11.6,21.61,15.49-1.31,4.29-1.31,4.29,8.11-2.72,9.24-7.92S129,187.81,112.41,194.87Z" style="fill:#263238;transform-origin:127.212px 203.771px" id="el1o0c6smdxot" class="animable"></path><path d="M120.69,182.55a32.75,32.75,0,0,1,16.9,6.52c6.53,5,10.59,10.49,10.09,12.85-.79,3.76-13.75,8.61-22.05,10.78s-17.28-4-17.18-7.93,4.71-3.54,4.71-3.54S117.33,185.71,120.69,182.55Z" style="fill:#263238;transform-origin:128.085px 197.85px" id="elfbwc68oakjf" class="animable"></path><path d="M132.8,188.48a5.86,5.86,0,0,0-6.57,2.15,17.94,17.94,0,0,1-10.39,7.22c-9.1,2.19-22.65-.71-22.65-.71a70.24,70.24,0,0,1,3.56-9.5c2.47-5.5,8.4-9.16,14.73-10,2.69-.37,15.34,4.46,15.34,4.46,19.36-5.46,22.73,15.8,22.73,15.8h-1.83a6.91,6.91,0,0,1,.79,3.76l-5.59,5c-4.18,9.37-13.76,10-14.83,8.4,0,0,12.38-.13,15.58-19.73C144.15,192.35,137.22,189.89,132.8,188.48Z" style="fill:#ffc100;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:121.37px 196.681px" id="elimmh8x6oxw" class="animable"></path><path d="M120.69,182.55l-15.27-2.85-16.35-8.44s-3.37-3.85-4.78-3.85c-.26,0-3.21.5-2.94.85C82.68,170,84,170.47,84,171.13c0,2.14-2.84.66-2.66,1.29.52,1.81,6.42,1.48,6.42,1.48s12.66,7.85,15.29,9.6,13.51,7.1,13.51,7.1S120.67,185.66,120.69,182.55Z" style="fill:#bfbfbf;stroke:#263238;stroke-miterlimit:10;transform-origin:101.011px 179.005px" id="el9v6giglc6xs" class="animable"></path><path d="M122.56,188.87c-2.24,3.62-8.18,4-8.18,4l-4.87-4.63-2.25-.62c.93-1.68,1.19-8.64,1.19-8.64s11.2,2.55,12.92,2.15,2.25,4.22,2.25,4.22" style="fill:#ffc100;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:115.44px 185.925px" id="elj0fpwxgqs2h" class="animable"></path><path d="M125.63,188.87s2.27-3.87,0-6.32c0,0,5.78-3.21,13.09.58s9.87,8.87,10.83,14.72c0,0-4.18-1.53-6,3.61" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:137.59px 191.37px" id="eloh9dum9sfj" class="animable"></path><path d="M149.26,181.75c1.65.47,3.76,3,2.05,3.76s-.84,1.84-.72,2.24.19,1.32-1.33,1.45-1.64-.53-2.24.39.38.37-1.09,1-1.21.69-2.34.73-2.43.7-3.12-1.14S146.3,180.89,149.26,181.75Z" style="fill:#263238;transform-origin:146.182px 186.574px" id="elxnkbxm0p7q" class="animable"></path><path d="M136.69,176.6c-7.37-.41-9.1,11.77-3.29,19.19S156.47,177.73,136.69,176.6Z" style="fill:#bfbfbf;stroke:#263238;stroke-miterlimit:10;transform-origin:137.926px 186.866px" id="ele7txzjqjpi8" class="animable"></path><path d="M134.49,184c.81-1.24,3.7,2.5,4,1.58s1.71,1.08,2.31,1.3a4.67,4.67,0,0,0,2.77-.44c.79-.4,3.69,1.37,4.61.52a1.51,1.51,0,0,0,.53-1.71s2.18-.33,2.57-1.25-1.32.42-.46-1.44,3-3,1.44-3.77-2.69-1.65-2.1-3.1.2-3.63-1.12-3.63-4.68.93-4.55-.72-5.27-2.18-6.07-1.12-3-.57-4.15-.55-4.48,2.39-4,3.91-.65,1.56-1.12,3a3.8,3.8,0,0,0,.33,3.28c.4.36-2-.36-1.12,1.68s.92,2.95,1.25,3.08.47-2.29,1.85-2.82.92,3.43.92,3.43S133.51,185.51,134.49,184Z" style="fill:#263238;transform-origin:140.489px 178.432px" id="elirmx7j9hro" class="animable"></path><path d="M134,186.82a4,4,0,0,1,3.28.31" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:135.64px 186.867px" id="elzbig0z1i2pn" class="animable"></path><path d="M141.35,187.88a2.13,2.13,0,0,1,2.9,1" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:142.8px 188.264px" id="elt07ioqsnag" class="animable"></path><path d="M139.51,190.25c-.2,2.11.66,3.63-1.58,3.17" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:138.721px 191.876px" id="elyjb3bv44frk" class="animable"></path><path d="M136,189.66c-.09.38-.36.63-.61.58s-.39-.41-.31-.78.36-.63.61-.57S136,189.29,136,189.66Z" style="fill:#263238;transform-origin:135.529px 189.564px" id="elsa2biubqnhl" class="animable"></path><path d="M142.4,190.71c-.08.37-.35.62-.61.57s-.39-.41-.3-.78.36-.63.61-.57S142.49,190.33,142.4,190.71Z" style="fill:#263238;transform-origin:141.944px 190.604px" id="elb7kwtd2avf" class="animable"></path></g><g id="freepik--character-3--inject-4" class="animable" style="transform-origin:338.733px 167.607px"><path d="M398.88,185.85A3.63,3.63,0,0,1,397,186c-2.46-.31-5.92-2.14-6.59-4.76a4.11,4.11,0,0,0-.17-.53,4.66,4.66,0,0,0-3.28-3.32s-1.62-1.32-1.62-2.19,1.07-2.86.81-4.4.51-4.28,1.72-4.94a5.35,5.35,0,0,1,5.82.77c2,1.75,3.85,8,5.72,11.2S400.86,185,398.88,185.85Z" style="fill:#ffc100;transform-origin:392.975px 175.695px" id="elenvulzit75w" class="animable"></path><g style="clip-path:url("#freepik--clip-path--inject-4");transform-origin:394.128px 180.855px" id="elgenz9b0hl3" class="animable"><g id="elxlrtcj8m0l8"><path d="M397,186c-2.46-.31-5.92-2.14-6.59-4.76a4.11,4.11,0,0,0-.17-.53c1.63-.13,4.49-1,4.94-5C395.2,175.69,400.07,181.7,397,186Z" style="fill-opacity:.7;opacity:.3;transform-origin:394.128px 180.855px" class="animable" id="elncikzqcoxhg"></path></g></g><path d="M398.88,185.85A3.63,3.63,0,0,1,397,186c-2.46-.31-5.92-2.14-6.59-4.76a4.11,4.11,0,0,0-.17-.53,4.66,4.66,0,0,0-3.28-3.32s-1.62-1.32-1.62-2.19,1.07-2.86.81-4.4.51-4.28,1.72-4.94a5.35,5.35,0,0,1,5.82.77c2,1.75,3.85,8,5.72,11.2S400.86,185,398.88,185.85Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:392.975px 175.695px" id="elywjillvm9ja" class="animable"></path><path d="M395.2,174.59s-.24,5.12-2.3,5.36" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:394.05px 177.27px" id="eluqnwlo2pdol" class="animable"></path><path d="M393.8,231.83,384,205.63c-.09-.26-.18-.52-.25-.79-1.52-5.43.5-12.74,1.79-17.29a33.49,33.49,0,0,0,.89-4.56,75.61,75.61,0,0,0,.59-7.61c3.37-2.49,6,1.67,6,1.67s-.88,3.31,1.54,18.09S400.31,228.49,393.8,231.83Z" style="fill:#fff;transform-origin:390.401px 203.208px" id="eluc4m6ph46n7" class="animable"></path><g style="clip-path:url("#freepik--clip-path-2--inject-4");transform-origin:387.3px 196.095px" id="elqqghe428ypq" class="animable"><g id="elxw10gwkq9xs"><path d="M391.24,209.2l-7.45-4.36c-1.52-5.43.5-12.74,1.79-17.29a33.49,33.49,0,0,0,.89-4.56C392.52,190.69,391.24,209.2,391.24,209.2Z" style="fill:#ffc100;opacity:.4;transform-origin:387.3px 196.095px" class="animable" id="ell0tpnh5p2ga"></path></g></g><path d="M393.8,231.83,384,205.63c-.09-.26-.18-.52-.25-.79-1.52-5.43.5-12.74,1.79-17.29a33.49,33.49,0,0,0,.89-4.56,75.61,75.61,0,0,0,.59-7.61c3.37-2.49,6,1.67,6,1.67s-.88,3.31,1.54,18.09S400.31,228.49,393.8,231.83Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:390.401px 203.208px" id="elnkvb76a637" class="animable"></path><path d="M374.16,218.6c-14.73,6.15-59.34-23.08-60.44-23.31,0,0,35.6-6.29,40.89-7.53a2.59,2.59,0,0,0,.65-.2c.16.16,1.8,1.42,4.14,3.35C367.87,197.92,385.46,213.87,374.16,218.6Z" style="fill:#fff;transform-origin:345.777px 203.505px" id="eludrkp87xrn8" class="animable"></path><g style="clip-path:url("#freepik--clip-path-3--inject-4");transform-origin:345.777px 203.605px" id="elsc89ua6smif" class="animable"><g id="ely1h6oy0bbl"><path d="M374.16,218.6c-14.73,6.15-59.34-23.08-60.44-23.31,0,0,35.6-6.29,40.89-7.53q2.38,1.49,4.79,3.15C367.87,197.92,385.46,213.87,374.16,218.6Z" style="fill:#ffc100;opacity:.4;transform-origin:345.777px 203.605px" class="animable" id="elgz6n8tm8wb4"></path></g></g><path d="M374.16,218.6c-14.73,6.15-59.34-23.08-60.44-23.31,0,0,35.6-6.29,40.89-7.53a2.59,2.59,0,0,0,.65-.2c.16.16,1.8,1.42,4.14,3.35C367.87,197.92,385.46,213.87,374.16,218.6Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:345.777px 203.505px" id="elixm0h8cwzd" class="animable"></path><path d="M396.94,220.6c1.08,8.56-2.24,13.36-9.05,12.06l-.77-.16c-11.93-2.55-13.46-9.55-28.74-22-5.29-4.33-10.47-7.79-14.89-10.88-7-4.93-12.17-8.94-12.85-14-1.1-8.29-11.31-20.31,7.75-27.49,14.32-5.38,38.79,22.25,49.5,39.86a87,87,0,0,1,5.1,9.64" style="fill:#fff;transform-origin:362.034px 195.159px" id="eljb08wqza0xc" class="animable"></path><g style="clip-path:url("#freepik--clip-path-4--inject-4");transform-origin:365.305px 215.16px" id="ele655dh36bqf" class="animable"><g id="elt8jlczgz6cg"><path d="M387.12,232.5c-11.93-2.55-13.46-9.55-28.74-22-5.29-4.33-10.47-7.79-14.89-10.88l6.21-1.8,3.8,1.39a189.67,189.67,0,0,1,18.82,20.27A48.33,48.33,0,0,0,387.12,232.5Z" style="fill:#ffc100;opacity:.4;transform-origin:365.305px 215.16px" class="animable" id="elyu09u7k1x6i"></path></g></g><path d="M396.94,220.6c1.08,8.56-2.24,13.36-9.05,12.06l-.77-.16c-11.93-2.55-13.46-9.55-28.74-22-5.29-4.33-10.47-7.79-14.89-10.88-7-4.93-12.17-8.94-12.85-14-1.1-8.29-11.31-20.31,7.75-27.49,14.32-5.38,38.79,22.25,49.5,39.86a87,87,0,0,1,5.1,9.64" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:362.034px 195.159px" id="elisxjbr68t8" class="animable"></path><path d="M353.5,158.68c6.81,1.24,22,15.25,22.63,16.7s2.42,4.54,2.42,4.54h1.76s-3.08,12.75-8.13,17.58-25.85,5.49-27.87,4.84a14.7,14.7,0,0,1-4.22-2.64l-15.16-4.41Z" style="fill:#263238;transform-origin:352.62px 180.615px" id="ele8m552icma6" class="animable"></path><path d="M264.74,185.35c-1.59,3.27-9.45,5.86-10,7.43a7.46,7.46,0,0,1-2.61,3,2.06,2.06,0,0,1,0-2.78c1.27-1.43,1.41-4.49,1.41-4.49a27.74,27.74,0,0,0-3.33-1.28c-.38-.09-1.19-.24-2.14-.4-1.9-.33-4.36-.72-5-.89a5.26,5.26,0,0,1-2-1.29c-1.28.1-3.24-2.57-2.07-2.39a40.44,40.44,0,0,0,9.43,0c-8.14-2-7.37-4-7.37-4,2.55,1.33,9.78,1.75,9.78,1.75s-4.36-1.88-5.12-2.87a1.7,1.7,0,0,1-.14-1.65A29.07,29.07,0,0,0,252,178.1a30.78,30.78,0,0,0,11.85.09h0v0Z" style="fill:#fff;transform-origin:251.691px 185.635px" id="el0sb3k3htjv7o" class="animable"></path><g style="clip-path:url("#freepik--clip-path-5--inject-4");transform-origin:256.405px 185.713px" id="elwn8ylntgl5h" class="animable"><g id="elq1i2h9sbeih"><path d="M264.74,185.35c-1.59,3.27-9.45,5.86-10,7.43a7.46,7.46,0,0,1-2.61,3,2.06,2.06,0,0,1,0-2.78c1.27-1.43,1.41-4.49,1.41-4.49a27.74,27.74,0,0,0-3.33-1.28c-.38-.09-1.19-.24-2.14-.4,3.88-.07,8.75-.33,10.13-1.23,0,0-1.95-3.83-1.58-6.88a3.85,3.85,0,0,1,1.5-2.78c1.2-.88,3.32.32,5.59,2.28l.05,0Z" style="fill:#ffc100;opacity:.4;transform-origin:256.405px 185.713px" class="animable" id="elzubpzt01zt"></path></g></g><path d="M264.74,185.35c-1.59,3.27-9.45,5.86-10,7.43a7.46,7.46,0,0,1-2.61,3,2.06,2.06,0,0,1,0-2.78c1.27-1.43,1.41-4.49,1.41-4.49a27.74,27.74,0,0,0-3.33-1.28c-.38-.09-1.19-.24-2.14-.4-1.9-.33-4.36-.72-5-.89a5.26,5.26,0,0,1-2-1.29c-1.28.1-3.24-2.57-2.07-2.39a40.44,40.44,0,0,0,9.43,0c-8.14-2-7.37-4-7.37-4,2.55,1.33,9.78,1.75,9.78,1.75s-4.36-1.88-5.12-2.87a1.7,1.7,0,0,1-.14-1.65A29.07,29.07,0,0,0,252,178.1a30.78,30.78,0,0,0,11.85.09h0v0Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:251.691px 185.635px" id="el5nc8661nw0r" class="animable"></path><path d="M241.17,184.62s-.86-.15,3-.28a47.92,47.92,0,0,0,5.06-.35" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:245.159px 184.305px" id="el7up6yl1be5f" class="animable"></path><path d="M416.62,139.11c1.87-.44,7.58-4.4,9.67-6.93a28.93,28.93,0,0,0,3.56-5.84,1.71,1.71,0,0,1,.84,1.43c-.05,1.25-2.53,5.29-2.53,5.29s5.66-4.51,7-7.06c0,0,1.81,1.23-3.68,7.56a40.39,40.39,0,0,0,7.71-5.42c.86-.82.79,2.49-.31,3.15a5.2,5.2,0,0,1-.88,2.19c-.65.77-4.33,4.31-5.1,5.19a27.35,27.35,0,0,0-2,3s1.86,2.42,3.73,2.86a2.06,2.06,0,0,1,1.65,2.24,7.45,7.45,0,0,1-3.85-.92c-1.31-1-9.22,1.43-12.41-.33" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:428.198px 136.387px" id="els75xnw3ci2o" class="animable"></path><path d="M422.28,145.37S397,158.68,391.52,158.68c-7.36,0-29.23,12.89-29.23,12.89l-8.79-21.19s19.13-3.07,24.39-2.92c5.93.16,10.33-5.31,20-6.23,13.18-1.26,20.88-2.45,20.88-2.45" style="fill:#fff;transform-origin:387.89px 155.175px" id="elixqbln13x2m" class="animable"></path><g style="clip-path:url("#freepik--clip-path-6--inject-4");transform-origin:387.89px 158.45px" id="eli6dgh8lfw4" class="animable"><g id="eljw6v6n84w2"><path d="M422.28,145.37S397,158.68,391.52,158.68c-7.36,0-29.23,12.89-29.23,12.89l-8.79-21.19s6.68-1.07,13.23-1.92a24.1,24.1,0,0,1,8.42,11.64s10-3.83,11.61-4.92,0-5.11,0-5.11a13,13,0,0,1,4.61,0c2.64.45.79,4.62.79,4.62a145.14,145.14,0,0,0,30.1-9.36Z" style="fill:#ffc100;opacity:.4;transform-origin:387.89px 158.45px" class="animable" id="elq1h9a0fgzm"></path></g></g><path d="M422.28,145.37S397,158.68,391.52,158.68c-7.36,0-29.23,12.89-29.23,12.89l-8.79-21.19s19.13-3.07,24.39-2.92c5.93.16,10.33-5.31,20-6.23,13.18-1.26,20.88-2.45,20.88-2.45" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:387.89px 155.175px" id="elzwapz8c1x4a" class="animable"></path><path d="M368.22,171.57l-3,1.16-12.84,5s-5.06,10.77-9.67,15.83S321,201,312.18,199.26s-22.19,5.49-28.39,0-21.27-12.31-27.2-21.54c-1.81-2.82-1.2-5.78.53-8.53,3.95-6.27,13.68-11.46,13.68-11.46a128,128,0,0,1,39.87-10.39,108,108,0,0,1,31.71,2c3.38.68,5.38,1.13,5.84.73,1.78-1.55,5.16-1.08,5.82-1l.12,0s-.4-2.52,1.33-3c1.15-.34,3.24.22,7,3C372,156.12,368.22,171.57,368.22,171.57Z" style="fill:#ffc100;transform-origin:312.228px 173.669px" id="el6sbfz7x9oc" class="animable"></path><g style="clip-path:url("#freepik--clip-path-7--inject-4");transform-origin:310.729px 173.728px" id="elbhp78of2z6" class="animable"><g id="elg65f5sjygpa"><path d="M365.24,172.73l-12.84,5s-5.06,10.77-9.67,15.83S321,201,312.18,199.26s-22.19,5.49-28.39,0-21.27-12.31-27.2-21.54c-1.81-2.82-1.2-5.78.53-8.53h0s-.53,11.31,8.71,15.1,10,3.63,10,3.63,8.7,9.4,11.47,10.72,21.49-4.26,23.21-3.51,7.91,5.62,18.06,2.32,19.92-12.53,19.78-18.59a84.69,84.69,0,0,1,.4-10.57s4,4,6.2,4.37c0,0,3.94-5.63,4.48-7.92,0,0,2.14,1.1.61,6.82s4.93-5.23,4.93-9.71C365,158.64,367,165,365.24,172.73Z" style="fill-opacity:.7;opacity:.3;transform-origin:310.729px 181.178px" class="animable" id="elii9wv7medy"></path></g><g id="ele930n6jphyt"><path d="M342.38,149.34c-1.56,2.47-5.95,6.1-18.32,6.45-18.93.53-20-4.37-20-4.37l6.59-4.08A108,108,0,0,1,342.38,149.34Z" style="fill-opacity:.7;opacity:.3;transform-origin:323.22px 151.391px" class="animable" id="elwwrpdh7g92p"></path></g><g id="el7tt5cr4frt9"><path d="M354,149.1l.12,0s-.4-2.52,1.33-3c2.46,1.47,5.59,3.83,5.58,6.3A39.37,39.37,0,0,0,354,149.1Z" style="fill-opacity:.7;opacity:.3;transform-origin:357.515px 149.25px" class="animable" id="elunkjghw43fe"></path></g></g><path d="M368.22,171.57l-3,1.16-12.84,5s-5.06,10.77-9.67,15.83S321,201,312.18,199.26s-22.19,5.49-28.39,0-21.27-12.31-27.2-21.54c-1.81-2.82-1.2-5.78.53-8.53,3.95-6.27,13.68-11.46,13.68-11.46a128,128,0,0,1,39.87-10.39,108,108,0,0,1,31.71,2c3.38.68,5.38,1.13,5.84.73,1.78-1.55,5.16-1.08,5.82-1l.12,0s-.4-2.52,1.33-3c1.15-.34,3.24.22,7,3C372,156.12,368.22,171.57,368.22,171.57Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:312.228px 173.669px" id="ele6id9pey5mr" class="animable"></path><path d="M323.06,181.22a28.19,28.19,0,0,1-2.65,1.87,26.85,26.85,0,0,1-5.05,2.54c-8.89,3.31-24.68,2.21-34.7-2.34a26.65,26.65,0,0,1-2.92-1.52,18.08,18.08,0,0,1-3.55-2.73c-7.74-7.91-4.4-14.41,0-17.43a27.21,27.21,0,0,1,3.78-2.12c1-.5,2.18-1,3.37-1.41,11.07-4.09,27.73-6,39.12-4.66,1.27.14,2.47.32,3.6.56,4.44.89,7.64,2.43,8.65,4.7C335.89,165.75,330.67,175.24,323.06,181.22Z" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:301.606px 170.272px" id="elh9s3b19hmic" class="animable"></path><path d="M323.06,181.22a28.19,28.19,0,0,1-2.65,1.87,42.36,42.36,0,0,1,0-29.67c1.27.14,2.47.32,3.6.56C319,164.13,321.55,176,323.06,181.22Z" style="fill:#263238;transform-origin:320.869px 168.255px" id="elxa9jizvuzu8" class="animable"></path><path d="M280.66,183.29a26.65,26.65,0,0,1-2.92-1.52,125,125,0,0,1,.23-22.28c1-.5,2.18-1,3.37-1.41C278.92,167.83,279.93,178.28,280.66,183.29Z" style="fill:#263238;transform-origin:279.345px 170.685px" id="el5hvadaxbnpe" class="animable"></path><path d="M438.86,131.29s.62-.62-2.57,1.47a46.76,46.76,0,0,1-4.34,2.63" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:435.429px 133.297px" id="elc8vukqn0cd9" class="animable"></path><path d="M354.16,149.12a13.2,13.2,0,0,1,10,9c2.5,7.87,1.32,10.22,1.32,10.22" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:359.959px 158.73px" id="elnhj23om3d9" class="animable"></path><path d="M348.22,150.07s-2.68,6.25-2.44,10.86,3.92,10.34,3.92,10.34" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:347.732px 160.67px" id="elrauhal6ofti" class="animable"></path><path d="M334.67,170.27s-11.47,23-31.52,20.73" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:318.91px 180.714px" id="elzkcqulm9jud" class="animable"></path><path d="M268.05,171.27s-.9,11,16.77,17.36" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:276.431px 179.95px" id="elqfxw6jz9c6" class="animable"></path><path d="M352.4,177.72S361,165.55,360,160.67" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:356.24px 169.195px" id="el3vhdcuo0965" class="animable"></path><g id="elvqiiaszoxy"><g style="opacity:.2;transform-origin:368.185px 185.985px" class="animable" id="elup49rkkvxf"><path d="M377.83,180.71s-6.24,14.47-12.83,14.43" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;transform-origin:371.415px 187.925px" id="eloqyasqa3zw" class="animable"></path><path d="M363.29,176.22s2.11,14.26-4.75,19.53" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;transform-origin:361.068px 185.985px" id="el0vv4u0y95hg" class="animable"></path></g></g><path d="M296.36,177.72c-1.93-4.08-6.48-5.79-10.8-6.45a38.39,38.39,0,0,0-9.7-.14l.38-.78,7.55-15.66s19.72-5.32,23.56,4" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:291.605px 165.449px" id="elm10j0hj5y8k" class="animable"></path><path d="M285.56,171.27a38.39,38.39,0,0,0-9.7-.14l.38-.78c1.74-1.87,4.83-3.72,9.77-5A7.6,7.6,0,0,1,285.56,171.27Z" style="fill:#263238;transform-origin:281.134px 168.31px" id="elxx9snhgd5l" class="animable"></path><path d="M258.22,145.57s-2.14,5.56-9.79.44-2.51-8.81-2.51-8.81-2.5,3.14,4.09,5.79c0,0-5-2-3-8.69S258.22,145.57,258.22,145.57Z" style="fill:#263238;transform-origin:251.225px 140.492px" id="eln2oczbkwpz" class="animable"></path><path d="M287.33,164.43c-.84,4.91-10.14,12.48-16.89,11.74-3.14-.35-15.49-8.81-15.11-20.48.27-8.42-6.54-16.55-1.46-29.61,6.17-15.86,28.25-22.89,41.35-8.54,7.48,8.19,4.95,26.42-2.22,40.4" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:275.864px 142.987px" id="elzxcvgxx5wu" class="animable"></path><path d="M268.05,140.58s5.77-2.24,9.3,1.9" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:272.7px 141.227px" id="elmrfvso1jdge" class="animable"></path><path d="M272,150.08c0,1.09-.53,2-1.17,2s-1.15-.9-1.14-2,.54-2,1.17-2S272,149,272,150.08Z" style="fill:#263238;transform-origin:270.845px 150.08px" id="el9i9sbxez2u8" class="animable"></path><path d="M259.37,149.13c0,1.1-.53,2-1.17,2s-1.14-.89-1.14-2,.54-2,1.18-2S259.38,148,259.37,149.13Z" style="fill:#263238;transform-origin:258.215px 149.13px" id="el5057o9rzh5y" class="animable"></path><path d="M258.3,141.19s-4.13-3-5.74.28" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:255.43px 140.703px" id="elk8wqnl13vll" class="animable"></path><path d="M262.2,150.38c-.16,1.47-4.19,5-2.77,6.49a6.34,6.34,0,0,0,2.87,1.81" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:260.714px 154.53px" id="eln0g8kzals2a" class="animable"></path><path d="M261,162.45a26.46,26.46,0,0,0,12.19-.84" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:267.095px 162.208px" id="eln6svre9z13o" class="animable"></path><path d="M273.17,161.61s-1.67,5.46-5.81,5.42-4.67-4.35-4.67-4.35" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:267.93px 164.32px" id="elzpascru1h79" class="animable"></path><path d="M281.75,135.09s2.36,9.12,6.29,11.65a13,13,0,0,1,5.14,6.1l1.2,6.31s9.45,6.38,14.73,2,8.24-3.84,8.24-3.84-.44-2.42-5-1.65c0,0,10,1,8.46-8S286.91,121.47,281.75,135.09Z" style="fill:#263238;transform-origin:301.361px 146.357px" id="elztzp5cgtmk" class="animable"></path><path d="M270.8,127.73s-5.42-1.1-11.67,6.26c-4.09,4.82-10.07,4.29-13.53.83s-3.13-14.34-7.91-14.67c0,0,4.94-2.64,8.4,1.15,0,0,2.31-2.31-.16-5.27s1.2-11,9.5-9.56c0,0-4.08,1-1.19,3.28,0,0,5.37-6.41,12.13-5.75s23.7-7.18,28,6.42c0,0,6.43-2.65,10.22-.67s6.6,12.87,10.72,15.51,9.06-2.15,12.52-1.32,6.1,4.28,6.1,4.28-3.3-1.32-5.6.33c0,0,6.75,4.95,10.05,2,0,0-1.48,14.67-14.34,16.32,0,0,5.28,2.3,12.86,0a44.31,44.31,0,0,1-19.29,7.68c-11,1.38-8.73-6.14-26.42-9.33-5.52-1-5.61-9-5.61-9a19.15,19.15,0,0,0-.44,6.29c.33,3.54,3.3,6.61,5.77,6.64,0,0-7.13,1.26-10.22-2.93-5.29-7.18-2.47-16.81-2.47-16.81s-5.53-2.75-12.19,4.45c-5.41,5.84-9.56,3.95-9.56,3.95a9.61,9.61,0,0,0,5.82-3C264.55,132.18,267.08,127.73,270.8,127.73Z" style="fill:#263238;transform-origin:288.035px 128.53px" id="eljowvr0xvppm" class="animable"></path><path d="M288.78,150.38s4.05-7,7.13-4.11,3.42,4.75,2.54,6.62a30.13,30.13,0,0,1-4.07,6.26,2.66,2.66,0,0,1-4.06,0" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:293.826px 152.831px" id="elli42bq7h3bf" class="animable"></path><g id="ell6fwzguu5l7"><g style="opacity:.2;transform-origin:287.924px 125.249px" class="animable" id="eloic89yxdij"><path d="M280.6,124.27s.71-6.85-6.46-6.19c-8.57.79-13.89,14.61-21.58,14.71-7,.09-4.13-9-4.13-9" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;transform-origin:264.233px 125.413px" id="elbm0ni1zltxs" class="animable"></path><path d="M284.82,124.41s-4.17,2.42-3.07,8.46,6.5,12.21,15.34,10.12,12.13-2.76,16.75,2,16.21.56,13.84-5.06" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;transform-origin:304.781px 135.734px" id="el22jmityv5g2" class="animable"></path><path d="M286.67,120.45s3.82,14.64,16.09,13.06,20.54-9.89,25.24-7.13" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;transform-origin:307.335px 127.04px" id="el926n7r3cgke" class="animable"></path><path d="M289.84,116.16s.92-4.41,7.12.6,9.23,8.57,13.45,6.2" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;transform-origin:300.125px 119.039px" id="elz56xb6r8po" class="animable"></path><path d="M286,118s3.3-3.12-.79-7.07-16.22,4.61-25.32,4.22-1.6-6.6-1.6-6.6" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;transform-origin:271.321px 113.275px" id="ell2ofezyx8qn" class="animable"></path><path d="M289.84,111.22s1.84-6.2-6.2-7.78" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;transform-origin:286.831px 107.33px" id="elbfcfitzjquo" class="animable"></path></g></g></g><g id="freepik--character-2--inject-4" class="animable" style="transform-origin:229.916px 350.061px"><path d="M238.59,268.19a9.55,9.55,0,0,1,7.73-2,4,4,0,0,1,3.53,5.14s8.39,7.12,14.89,21S275.59,331,275.59,331l-102.06-5s15.88-25.35,19.21-30.1,10-10.64,10-10.64a5.68,5.68,0,0,1,4.36-3.61c3.56-.79,6.36-.4,7.14.79a3.24,3.24,0,0,1,0,2.82s.27,19.51,2.11,19.82,22.19-1.67,22.19-1.67,2.32-10.61,2.85-12.62L240,274.52S235.5,269.85,238.59,268.19Z" style="fill:#263238;transform-origin:224.56px 298.519px" id="elcmuq70znpd8" class="animable"></path><path d="M238,269.71s-2.81-4.33-2.15-5.37,6.86-2.89,8.51-2.48,3.38,7.23,1.69,7.85S238,269.71,238,269.71Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:241.246px 265.894px" id="el20v2ieu1aag" class="animable"></path><path d="M213.19,283.4s2.29-3.55,1.75-4.39-5.61-2.37-7-2-2.77,5.91-1.38,6.42S213.19,283.4,213.19,283.4Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:210.502px 280.301px" id="eltawea75c3od" class="animable"></path><g id="el1dsukbtj0fw"><path d="M244.34,288.89s2.37-8.52,6.46-8.61" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;opacity:.4;transform-origin:247.57px 284.585px" class="animable" id="el5a6nnui954"></path></g><g id="elfqdmmtsi2u6"><path d="M250.8,286.25s9.13,2.13,12,9.64" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;opacity:.4;transform-origin:256.8px 291.07px" class="animable" id="el1mrg70q6t9y"></path></g><g id="elj27s8kkyaub"><path d="M194.09,298.55s7.26-7.55,14.91-6.23" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;opacity:.4;transform-origin:201.545px 295.358px" class="animable" id="elj70pevaaa0n"></path></g><g id="el0jdqij42r3me"><path d="M206.6,283.4s4.42-1.63,6.13,2.85" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;opacity:.4;transform-origin:209.665px 284.68px" class="animable" id="el5qi4zi7i8hu"></path></g><g id="eldqxhfkw40an"><path d="M241.22,271.22s2.76-3.83,6.35-1.23" style="fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;opacity:.4;transform-origin:244.395px 270.153px" class="animable" id="el5c4x5lw93zt"></path></g><path d="M393.07,409.84l-8,12.05a18.38,18.38,0,0,0,.8,1.89c1.07,2.24,3.25,5.85,6.75,7.49,4.87,2.29,6.09,5.06,8.92,4.18a4,4,0,0,0,.69-.26c3.34-1.58.81-4.22,1.9-6.33s5.92-2.72,7.68-4.4.72-4,1.64-6.16-1.44-4.16-2.69-4.67-1.1-4.54-3.77-4-3.11-1.86-3.68-2.44S394.42,409.13,393.07,409.84Z" style="fill:#fff;transform-origin:399.364px 421.361px" id="eleznqfwtrkbr" class="animable"></path><g style="clip-path:url("#freepik--clip-path-8--inject-4");transform-origin:393.695px 429.699px" id="elykkwfr6y38" class="animable"><g id="el3y45fpu7v8b"><path d="M385.86,423.78c1.07,2.24,3.25,5.85,6.75,7.49,4.87,2.29,6.09,5.06,8.92,4.18-2.39-1.52-4.35-3.67-4.94-5.27C395.76,428,390.38,425.11,385.86,423.78Z" style="fill:#ffc100;opacity:.4;transform-origin:393.695px 429.699px" class="animable" id="elp0lidjy94fg"></path></g></g><path d="M393.07,409.84l-8,12.05a18.38,18.38,0,0,0,.8,1.89c1.07,2.24,3.25,5.85,6.75,7.49,4.87,2.29,6.09,5.06,8.92,4.18a4,4,0,0,0,.69-.26c3.34-1.58.81-4.22,1.9-6.33s5.92-2.72,7.68-4.4.72-4,1.64-6.16-1.44-4.16-2.69-4.67-1.1-4.54-3.77-4-3.11-1.86-3.68-2.44S394.42,409.13,393.07,409.84Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:399.364px 421.361px" id="elt7o3hgkz4i" class="animable"></path><path d="M396,411.28l-21.52-10.5c-5.38-2.63-16.69-7.77-22.36-10.59a13.83,13.83,0,0,0-5.3-1.58c-2.2-.14-3.66.46-5.28.26-2.63-.33-22.16-.95-22.16-.95L316,400.3l-6.85,25.15,7.2-2.41L344,413.77s10.65,4.7,21.18,4.58c8.35-.1,18.7,4.41,22.64,6.29,1,.49,1.62.8,1.62.8" style="fill:#fff;transform-origin:352.575px 406.685px" id="eloqk9np6zk0o" class="animable"></path><g style="clip-path:url("#freepik--clip-path-9--inject-4");transform-origin:351.91px 406.28px" id="ely0odgiyp2p" class="animable"><g id="elnj3ptv9pxyj"><path d="M319.39,387.92,316,400.3l.35,22.74L344,413.77s10.65,4.7,21.18,4.58c8.35-.1,18.7,4.41,22.64,6.29-6.48-4.93-17.94-9.13-22.56-9.27-7.23-.21-15.57-7.32-15.57-7.32-3.5,3.85-9.78,3.64-9.78,3.64,8.72-9.94,8.35-18.3,6.91-23.08-2.2-.14-3.66.46-5.28.26C338.92,388.54,319.39,387.92,319.39,387.92Z" style="fill:#ffc100;opacity:.4;transform-origin:351.91px 406.28px" class="animable" id="elgp0twqu2dkw"></path></g></g><path d="M396,411.28l-21.52-10.5c-5.38-2.63-16.69-7.77-22.36-10.59a13.83,13.83,0,0,0-5.3-1.58c-2.2-.14-3.66.46-5.28.26-2.63-.33-22.16-.95-22.16-.95L316,400.3l-6.85,25.15,7.2-2.41L344,413.77s10.65,4.7,21.18,4.58c8.35-.1,18.7,4.41,22.64,6.29,1,.49,1.62.8,1.62.8" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:352.575px 406.685px" id="elone1pvi2i1" class="animable"></path><path d="M70,312.93V327.4a17.31,17.31,0,0,1-1.71,1.13c-2.13,1.27-6,3.07-9.77,2.5-5.32-.79-7.87.84-9.74-1.45a4.88,4.88,0,0,1-.43-.6c-1.91-3.17,1.66-4,1.92-6.33s-3.43-5.54-4-7.91,1.59-3.7,2-6,3.5-2.67,4.82-2.4,3.43-3.17,5.35-1.23,3.62.17,4.41,0S69.23,311.59,70,312.93Z" style="fill:#fff;transform-origin:58.0874px 317.826px" id="ele1qty2vrx4j" class="animable"></path><g style="clip-path:url("#freepik--clip-path-10--inject-4");transform-origin:58.495px 329.135px" id="el9zrifxu8gvv" class="animable"><g id="elgm1id9m1r94"><path d="M68.25,328.53c-2.13,1.27-6,3.07-9.77,2.5-5.32-.79-7.87.84-9.74-1.45,2.83.05,5.65-.65,7-1.66C57.69,326.53,63.75,327.13,68.25,328.53Z" style="fill:#ffc100;opacity:.4;transform-origin:58.495px 329.135px" class="animable" id="el70krlakz3ph"></path></g></g><path d="M70,312.93V327.4a17.31,17.31,0,0,1-1.71,1.13c-2.13,1.27-6,3.07-9.77,2.5-5.32-.79-7.87.84-9.74-1.45a4.88,4.88,0,0,1-.43-.6c-1.91-3.17,1.66-4,1.92-6.33s-3.43-5.54-4-7.91,1.59-3.7,2-6,3.5-2.67,4.82-2.4,3.43-3.17,5.35-1.23,3.62.17,4.41,0S69.23,311.59,70,312.93Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:58.0874px 317.826px" id="elj73aqedfeti" class="animable"></path><path d="M66.71,312.5l23.74,3.16c5.93.79,18.2,2.77,24.48,3.56a13.79,13.79,0,0,1,5.29,1.61c1.91,1.1,2.8,2.41,4.25,3.14,2.38,1.18,19,11.47,19,11.47l-4.05,12.18-8.21,24.74-4.66-6-17.89-23s-11.47-2-20.18-7.91c-6.9-4.7-18-6.67-22.34-7.29-1.13-.16-1.79-.23-1.79-.23" style="fill:#fff;transform-origin:103.91px 342.43px" id="elpgotlyutvi" class="animable"></path><g style="clip-path:url("#freepik--clip-path-11--inject-4");transform-origin:104.795px 343.61px" id="elzzy3h33b0p" class="animable"><g id="elt47xx2a8jz"><path d="M143.46,335.44l-4.05,12.18-12.87,18.75-17.89-23s-11.47-2-20.18-7.91c-6.9-4.7-18-6.67-22.34-7.29,8.13-.52,20,2.33,23.92,4.77,6.14,3.82,17,2.52,17,2.52.79,5.14,6.13,8.44,6.13,8.44-1.76-13.11,3.18-19.86,7-23.05,1.91,1.1,2.8,2.41,4.25,3.14C126.85,325.15,143.46,335.44,143.46,335.44Z" style="fill:#ffc100;opacity:.4;transform-origin:104.795px 343.61px" class="animable" id="el209moxl5hfej"></path></g></g><path d="M66.71,312.5l23.74,3.16c5.93.79,18.2,2.77,24.48,3.56a13.79,13.79,0,0,1,5.29,1.61c1.91,1.1,2.8,2.41,4.25,3.14,2.38,1.18,19,11.47,19,11.47l-4.05,12.18-8.21,24.74-4.66-6-17.89-23s-11.47-2-20.18-7.91c-6.9-4.7-18-6.67-22.34-7.29-1.13-.16-1.79-.23-1.79-.23" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:103.91px 342.43px" id="el0eykwnyz615i" class="animable"></path><path d="M159.93,337.61l-7.87,60-.38,2.93s-19.68-15.67-32-35.92c-.67-1.11-1.27-2.19-1.79-3.26-9-18.43,4.42-30.61,16.39-34.3,12.65-3.9,7.48,3.95,7.48,3.95C150.83,329.78,159.93,337.61,159.93,337.61Z" style="fill:#757575;transform-origin:137.439px 363.257px" id="elvd939ws6uop" class="animable"></path><g style="clip-path:url("#freepik--clip-path-12--inject-4");transform-origin:134.454px 372.235px" id="elisfg83csn1o" class="animable"><g id="ele7as12eer1n"><path d="M152.06,397.63l-.38,2.93s-19.68-15.67-32-35.92c-.67-1.11-1.27-2.19-1.79-3.26-.94-4.9-1.44-9.35-.65-11,2.11-4.49,8.7-6.47,8.7-6.47s2.53,28.61,8.7,37.11a95.28,95.28,0,0,0,14.62,15.42Z" style="fill-opacity:.7;opacity:.3;transform-origin:134.454px 372.235px" class="animable" id="eliojyu6z1j5"></path></g></g><path d="M159.93,337.61l-7.87,60-.38,2.93s-19.68-15.67-32-35.92c-.67-1.11-1.27-2.19-1.79-3.26-9-18.43,4.42-30.61,16.39-34.3,12.65-3.9,7.48,3.95,7.48,3.95C150.83,329.78,159.93,337.61,159.93,337.61Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:137.439px 363.257px" id="elwi4x866yi" class="animable"></path><path d="M336.87,415.54a36.46,36.46,0,0,1-12.33,6.86c-15.88,5.35-54.85,9.6-54.85,9.6l2.23-4.28,26.35-50.64s31.64,2.79,37.9,8.87c0,0-.79-9.34,6.31,4.21C347.43,399.61,344.48,408.94,336.87,415.54Z" style="fill:#757575;transform-origin:307.303px 404.54px" id="elknyuhqatq6s" class="animable"></path><g style="clip-path:url("#freepik--clip-path-13--inject-4");transform-origin:303.448px 412.962px" id="eln3z8agf2e4" class="animable"><g id="eliaiqx3xbbnj"><path d="M336.87,415.54a36.46,36.46,0,0,1-12.33,6.86c-15.88,5.35-54.85,9.6-54.85,9.6l2.23-4.28c13.65-2.21,33.5-6.52,38.4-10.76,7-6,5,.63,5,.63s12.39-9.75,15.29-17.14,5.34-8.41,6.23-3.54A22.7,22.7,0,0,1,332,415.44C329.5,418.44,332.72,417.87,336.87,415.54Z" style="fill-opacity:.7;opacity:.3;transform-origin:303.448px 412.962px" class="animable" id="el8zd7m6qmcmb"></path></g></g><path d="M336.87,415.54a36.46,36.46,0,0,1-12.33,6.86c-15.88,5.35-54.85,9.6-54.85,9.6l2.23-4.28,26.35-50.64s31.64,2.79,37.9,8.87c0,0-.79-9.34,6.31,4.21C347.43,399.61,344.48,408.94,336.87,415.54Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:307.303px 404.54px" id="elyp22cg9ca7" class="animable"></path><path d="M136.14,377.08c-9-19.79,18.71-42.9,18.71-42.9L166,332.34c1.14-18.66,39.87-35.07,52.83-36.35,20.62-2,61.72,25.7,71.7,40.08s6.06,32,6.06,32,24.34,19.57,25.82,32.47-41,42.13-88,28.49S156.92,422.54,136.14,377.08Z" style="fill:#757575;transform-origin:228.395px 364.231px" id="elrkysduzrfd" class="animable"></path><g style="clip-path:url("#freepik--clip-path-14--inject-4");transform-origin:228.785px 368.461px" id="elg99n5ivnxc" class="animable"><g id="elkz4ees6d6hr"><path d="M232.2,318.36c-25.85-5.07-52.14,13.44-52.14,13.44-4.11-.09-11.65.48-15.9.84l1.8-.3c.4-6.57,5.46-12.86,12.41-18.3,13.83-5.54,31.74-10.58,33.16-9.59,2,1.37-12.71,8.85-16.65,10.82,19-9.14,32.66-3.65,37.32-.8S232.2,318.36,232.2,318.36Z" style="fill-opacity:.7;opacity:.3;transform-origin:199.216px 318.482px" class="animable" id="elnrcki4u4twe"></path></g><g id="elsg6vivd0p68"><path d="M296.56,368.06c-2.74-2.22-6.64-5.11-9.92-6.44,0,0-3.4-14.44-31.89-29.82,0,0-3.25-3.9-2.74-5.73,1.21-4.37,24.47,7.82,25.09,8.14-.36-.36-8.09-8.15-2.53-8.49,4-.24,14,9.74,20.28,18.91h0A47.24,47.24,0,0,1,296.56,368.06Z" style="fill-opacity:.7;opacity:.3;transform-origin:274.633px 346.593px" class="animable" id="elw655kxg6yhs"></path></g><g id="elvr72sic20n"><path d="M215,335.44s27.61,4.14,49.65,15.16c0,0-16.59-16.25-29.37-19.46s-24-2.88-24.7-.15S215,335.44,215,335.44Z" style="fill-opacity:.7;opacity:.3;transform-origin:237.582px 339.719px" class="animable" id="el8s8ycxbgbck"></path></g><g id="eleyoanbp3app"><path d="M259.52,429.2c6.1,0,39.82-5.54,49.39-11.26-16,10.94-44.32,19.88-74.5,11.11-40.74-11.83-69.12-8-89.49-36.51,2.53,2.4,4.32,3.87,4.32,3.87l24.29,10.45s-14.15-26.08,12.5-23.23,50.71,37.85,50.71,37.85,11.82-.89,10,1.57-6.71,3.3-6.71,3.3S253.07,429.2,259.52,429.2Z" style="fill-opacity:.7;opacity:.3;transform-origin:226.915px 408.005px" class="animable" id="eln4psay29mx"></path></g><g id="elo0a0d5tqdl"><path d="M312.65,415.18c-.72.58-1.47,1.15-2.26,1.72A17.83,17.83,0,0,1,312.65,415.18Z" style="fill-opacity:.7;opacity:.3;transform-origin:311.52px 416.04px" class="animable" id="elysvy2eclr4e"></path></g></g><path d="M136.14,377.08c-9-19.79,18.71-42.9,18.71-42.9L166,332.34c1.14-18.66,39.87-35.07,52.83-36.35,20.62-2,61.72,25.7,71.7,40.08s6.06,32,6.06,32,24.34,19.57,25.82,32.47-41,42.13-88,28.49S156.92,422.54,136.14,377.08Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:228.395px 364.231px" id="elomvandsl14b" class="animable"></path><path d="M221.59,425.69s19.15,3.11,27.28-4.21" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:235.23px 423.913px" id="elh1iwi5q1dqk" class="animable"></path><path d="M296.55,368.09s-7.9-7.73-22.14-10.5" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:285.48px 362.84px" id="el1pa5jq9zwvs" class="animable"></path><path d="M253.61,315.74a175.34,175.34,0,0,1,22,15.29" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:264.61px 323.385px" id="elk5cfgbm2bq9" class="animable"></path><path d="M189.56,318.26C208,307,232,300,250.11,313.75" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:219.835px 312.206px" id="elgbttmzpm6p7" class="animable"></path><path d="M181,323.37c1.66-1,3.32-2,5-3" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:183.5px 321.87px" id="ellwem3zxxrjp" class="animable"></path><path d="M262.82,336.46c11.07,6.88,22.86,15.7,28.58,27.78" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:277.11px 350.35px" id="eljk3mhdhy5rp" class="animable"></path><path d="M250.8,329.8c3,1.42,5.87,3,8.72,4.67" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:255.16px 332.135px" id="el41ki6y07jf8" class="animable"></path><path d="M289.71,341.18s6.83,12.69,6.84,26.91" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:293.13px 354.635px" id="eluqygxjk8q1q" class="animable"></path><path d="M192.32,333.21a58.18,58.18,0,0,1,8,2.23" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:196.32px 334.325px" id="eln0elzf42cmn" class="animable"></path><path d="M154.85,334.18a90.51,90.51,0,0,1,32.87-1.74" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:171.285px 332.928px" id="el1xfysr76myu" class="animable"></path><path d="M208.12,319a80.54,80.54,0,0,0-28.06,12.85" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:194.09px 325.425px" id="el8mbnbnq6vsv" class="animable"></path><path d="M235.85,319.42c-7.43-2.66-16.09-2.49-23.75-1.24" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:223.975px 318.363px" id="elv5ghupb9n7" class="animable"></path><path d="M333.55,403.51c-6.88,11.6-18.2,19.72-30.92,23.87" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:318.09px 415.445px" id="elwjee2o8wkg" class="animable"></path><path d="M338,393.36a35.33,35.33,0,0,1-2.76,7.09" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:336.62px 396.905px" id="elc7j3cwoupz" class="animable"></path><path d="M307.59,378.15s14.55,2.52,19.3,11" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:317.24px 383.65px" id="elj3y61c6y6rc" class="animable"></path><path d="M141.74,331s-10.54-.93-14.23,6.42" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:134.625px 334.191px" id="elac8jmngyltj" class="animable"></path><path d="M128.3,355.19c-.72,15.88,6.52,30.43,18.86,40.3" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:137.705px 375.34px" id="eln0u9tqnt6g" class="animable"></path><path d="M130.14,344a40.52,40.52,0,0,0-1.58,7.78" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:129.35px 347.89px" id="el3xf23quhf4n" class="animable"></path><path d="M252,389.36c-10-13.36-28-17.36-44-17" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:230px 380.849px" id="elr571376jjwb" class="animable"></path><path d="M258.58,400.56a36.89,36.89,0,0,0-4.4-8.3" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:256.38px 396.41px" id="el9rx7qmuqy1v" class="animable"></path><path d="M223,423.82a97.63,97.63,0,0,1-18.8-2.73q-2.59-.61-4.93-1.29C161.8,409,170.73,387.45,182.2,381c19.1-10.73,46.43-.52,60.84,13.08C258.19,408.37,251,424.81,223,423.82Z" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:211.529px 400.191px" id="el69s75y3w87f" class="animable"></path><path d="M223,423.82a97.63,97.63,0,0,1-18.8-2.73q-2.59-.61-4.93-1.29A89.5,89.5,0,0,1,209,406.86C209.73,407.44,224.52,413.75,223,423.82Z" style="fill:#263238;transform-origin:211.19px 415.34px" id="elwvj0hwkw4ug" class="animable"></path><path d="M221.65,414.32c0,7.89-12,24.13-31.82,24-11-.06-21.82-17.69-22.77-41.87-.75-19-9.78-40.78,13.61-56.68,23.55-16,55.18-3.48,55.18,31.5,0,11.35-1.14,21.71-3.88,30.75" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:200.288px 385.609px" id="elre5zww4agw" class="animable"></path><path d="M188.79,382.5s10.39-3.15,17.21,3.14" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:197.395px 383.676px" id="elfc5l5lsn6gi" class="animable"></path><path d="M175.15,381.71s-4.39-4-9.82-2.09" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:170.24px 380.407px" id="elzupsqnqs4ef" class="animable"></path><path d="M197.4,395.51c0,1.86-.91,3.36-2,3.35s-2-1.52-1.94-3.38.91-3.36,2-3.35S197.41,393.65,197.4,395.51Z" style="fill:#263238;transform-origin:195.429px 395.495px" id="elqq1p35e82w" class="animable"></path><path d="M174.17,393.38c0,1.85-.91,3.35-2,3.34s-1.95-1.52-1.93-3.38.91-3.36,2-3.35S174.18,391.52,174.17,393.38Z" style="fill:#263238;transform-origin:172.205px 393.355px" id="eldsfbv7o18q8" class="animable"></path><path d="M177.1,385.64a91.86,91.86,0,0,1,0,11.15c-.69,6.46-3.73,11-2.59,12.42,1.49,1.91,8.72,2.56,8.72,2.56" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:178.743px 398.705px" id="elq2emz3bceir" class="animable"></path><path d="M178.74,416.64s13.14,2.56,23.25-1.34c0,0,2.31,3.17-4,6.46s-16.08,3.41-16.69-4" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:190.571px 419.604px" id="el9j5yqflhmyq" class="animable"></path><path d="M206,371.14s4.55,12.85,10.07,17.53l2,6.82s4.22-7.14,9.09-3.57,3.23,14.94,3.23,14.94,15-7.14,15.28-15.26A34.51,34.51,0,0,1,248.87,378s-3.25,1.31-4.55,3.72c0,0,7.15-15.44,2.6-19.34S206,371.14,206,371.14Z" style="fill:#ffc100;transform-origin:227.435px 384.247px" id="elaufvgmrgig" class="animable"></path><g style="clip-path:url("#freepik--clip-path-15--inject-4");transform-origin:227.435px 384.247px" id="eltnxnswmjqrr" class="animable"><g id="eloyq1q4w8kme"><path d="M206,371.14s4.55,12.85,10.07,17.53l2,6.82s4.22-7.14,9.09-3.57,3.23,14.94,3.23,14.94,15-7.14,15.28-15.26A34.51,34.51,0,0,1,248.87,378s-3.25,1.31-4.55,3.72c0,0,7.15-15.44,2.6-19.34S206,371.14,206,371.14Z" style="fill-opacity:.7;opacity:.3;transform-origin:227.435px 384.247px" class="animable" id="elp1vjh23q0oj"></path></g></g><path d="M206,371.14s4.55,12.85,10.07,17.53l2,6.82s4.22-7.14,9.09-3.57,3.23,14.94,3.23,14.94,15-7.14,15.28-15.26A34.51,34.51,0,0,1,248.87,378s-3.25,1.31-4.55,3.72c0,0,7.15-15.44,2.6-19.34S206,371.14,206,371.14Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:227.435px 384.247px" id="ely2srk692k7l" class="animable"></path><path d="M245.3,371.46,229,377.09a57.61,57.61,0,0,1-26.57-.43c-14-3.84-21.75-10.82-23.35-12.36l-.31-.31c1,3.9,4.49,8.77,4.49,8.77-10.11-1-15.22-11-15.22-11-3.57,4.55-3,14.62-3,14.62-5.91-14.51-.29-22.09-.29-22.09-2.31-12,2-16.56,2-16.56l3.53,2.27c6.45-14.29,25.19-13.89,25.19-13.89l-2.74,3.17c15.59-7.14,48.06,0,48.06,0l1.63,13.64,5.19-1.62c.15.38.29.78.41,1.18a63.88,63.88,0,0,1,2.51,15.22c0,.1,0,.16,0,.16l1.88-1.29,3.31-2.28S256,364,245.3,371.46Z" style="fill:#ffc100;transform-origin:209.028px 352.271px" id="el1ee3x0pnssv" class="animable"></path><g style="clip-path:url("#freepik--clip-path-16--inject-4");transform-origin:211.288px 354.118px" id="ellcsuv3ktga" class="animable"><g id="el5w3t6nfd1n4"><path d="M211.53,361.62c28,3.29,36.22-18.54,36.45-19.18a63.88,63.88,0,0,1,2.51,15.22C231.35,368.46,211.53,361.62,211.53,361.62Z" style="fill-opacity:.7;opacity:.3;transform-origin:231.01px 353.098px" class="animable" id="elj9da2snabvm"></path></g><g id="elgz2b5xsrlhr"><path d="M245.3,371.46,229,377.09a57.61,57.61,0,0,1-26.57-.43c-14-3.84-21.75-10.82-23.35-12.36a17.6,17.6,0,0,1-1.55-2.64c.41.73,6.72,11.23,34,14.86,28.29,3.76,44.16-22.27,44.16-22.27S256,364,245.3,371.46Z" style="fill-opacity:.7;opacity:.3;transform-origin:216.61px 366.343px" class="animable" id="elmgjqt2gxujd"></path></g><g id="eltsdy8op05k"><path d="M183.23,341.18s3.13-7.64,16-11.38c0,0-11.62.5-17.16,8.67,0,0-.24-3.65,1.13-5.55,0,0-8.16-.42-9.7,11.11,0,0-4.55.86-6.35-1.6,0,0-2,6.34,5,8.17,0,0-4.51,5.71,2.06,13.72,0,0-.86-7.25,2-12.06,0,0,.59,8.13,14.27,11.15,0,0-11.87-6.12-9.53-16.35,0,0,3.78,9.72,20.51,9.13,0,0-15.28-4.48-17.32-12.31a20.3,20.3,0,0,1,12.07-1.45S188.85,339.66,183.23,341.18Z" style="fill-opacity:.7;opacity:.3;transform-origin:184.173px 347.06px" class="animable" id="elr1oftlfff98"></path></g></g><path d="M245.3,371.46,229,377.09a57.61,57.61,0,0,1-26.57-.43c-14-3.84-21.75-10.82-23.35-12.36l-.31-.31c1,3.9,4.49,8.77,4.49,8.77-10.11-1-15.22-11-15.22-11-3.57,4.55-3,14.62-3,14.62-5.91-14.51-.29-22.09-.29-22.09-2.31-12,2-16.56,2-16.56l3.53,2.27c6.45-14.29,25.19-13.89,25.19-13.89l-2.74,3.17c15.59-7.14,48.06,0,48.06,0l1.63,13.64,5.19-1.62c.15.38.29.78.41,1.18a63.88,63.88,0,0,1,2.51,15.22c0,.1,0,.16,0,.16l1.88-1.29,3.31-2.28S256,364,245.3,371.46Z" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:209.028px 352.271px" id="elqzu3rymxulb" class="animable"></path><path d="M221.59,393.36s5.2-11.09,10.72-7.72,4.81,9.78,3.54,13.06-7.11,18.55-12.31,9.78" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:229.167px 398.082px" id="el3dp7zf8onnv" class="animable"></path><path d="M174.26,350.6c-2.82,1.63-4,10.24,2,16.22" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:174.103px 358.71px" id="el5t692e8sjoh" class="animable"></path><path d="M178.74,349.29c0,11.38,19.91,21.16,42.85,19.18s25.12-7.63,25.12-7.63" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:212.725px 359.008px" id="el0krx4206ms6p" class="animable"></path><path d="M185.79,347.31c7.12,11.4,46.46,14.24,52.8-6.13" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:212.19px 348.685px" id="elwzlu7kw3uh" class="animable"></path><path d="M178.74,343.88c-2.79-.88-1-9.1,5.86-12.85" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:181.039px 337.455px" id="elkc0030lu5tm" class="animable"></path><path d="M167.33,339.79c-1,2.7,1.14,9.69,6.54,8.31" style="fill:none;stroke:#263238;stroke-linecap:round;stroke-linejoin:round;transform-origin:170.481px 344.034px" id="el3hlpvi4nw5q" class="animable"></path><g id="elvivornnhf3a"><path d="M252.38,356.53l3.31-2.28C254.59,355.08,253.49,355.84,252.38,356.53Z" style="fill-opacity:.7;opacity:.3;transform-origin:254.035px 355.39px" class="animable" id="elhgx1j9h2u2n"></path></g></g><defs><clipPath id="freepik--clip-path--inject-4"><path d="M398.88,185.85A3.63,3.63,0,0,1,397,186c-2.46-.31-5.92-2.14-6.59-4.76a4.11,4.11,0,0,0-.17-.53,4.66,4.66,0,0,0-3.28-3.32s-1.62-1.32-1.62-2.19,1.07-2.86.81-4.4.51-4.28,1.72-4.94a5.35,5.35,0,0,1,5.82.77c2,1.75,3.85,8,5.72,11.2S400.86,185,398.88,185.85Z" style="fill:#92e3a9;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-2--inject-4"><path d="M393.8,231.83,384,205.63c-.09-.26-.18-.52-.25-.79-1.52-5.43.5-12.74,1.79-17.29a33.49,33.49,0,0,0,.89-4.56,75.61,75.61,0,0,0,.59-7.61c3.37-2.49,6,1.67,6,1.67s-.88,3.31,1.54,18.09S400.31,228.49,393.8,231.83Z" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-3--inject-4"><path d="M374.16,218.6c-14.73,6.15-59.34-23.08-60.44-23.31,0,0,35.6-6.29,40.89-7.53a2.59,2.59,0,0,0,.65-.2c.16.16,1.8,1.42,4.14,3.35C367.87,197.92,385.46,213.87,374.16,218.6Z" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-4--inject-4"><path d="M396.94,220.6c1.08,8.56-2.24,13.36-9.05,12.06l-.77-.16c-11.93-2.55-13.46-9.55-28.74-22-5.29-4.33-10.47-7.79-14.89-10.88-7-4.93-12.17-8.94-12.85-14-1.1-8.29-11.31-20.31,7.75-27.49,14.32-5.38,38.79,22.25,49.5,39.86a87,87,0,0,1,5.1,9.64" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-5--inject-4"><path d="M264.74,185.35c-1.59,3.27-9.45,5.86-10,7.43a7.46,7.46,0,0,1-2.61,3,2.06,2.06,0,0,1,0-2.78c1.27-1.43,1.41-4.49,1.41-4.49a27.74,27.74,0,0,0-3.33-1.28c-.38-.09-1.19-.24-2.14-.4-1.9-.33-4.36-.72-5-.89a5.26,5.26,0,0,1-2-1.29c-1.28.1-3.24-2.57-2.07-2.39a40.44,40.44,0,0,0,9.43,0c-8.14-2-7.37-4-7.37-4,2.55,1.33,9.78,1.75,9.78,1.75s-4.36-1.88-5.12-2.87a1.7,1.7,0,0,1-.14-1.65A29.07,29.07,0,0,0,252,178.1a30.78,30.78,0,0,0,11.85.09h0v0Z" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-6--inject-4"><path d="M422.28,145.37S397,158.68,391.52,158.68c-7.36,0-29.23,12.89-29.23,12.89l-8.79-21.19s19.13-3.07,24.39-2.92c5.93.16,10.33-5.31,20-6.23,13.18-1.26,20.88-2.45,20.88-2.45" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-7--inject-4"><path d="M368.22,171.57l-3,1.16-12.84,5s-5.06,10.77-9.67,15.83S321,201,312.18,199.26s-22.19,5.49-28.39,0-21.27-12.31-27.2-21.54c-1.81-2.82-1.2-5.78.53-8.53,3.95-6.27,13.68-11.46,13.68-11.46a128,128,0,0,1,39.87-10.39,108,108,0,0,1,31.71,2c3.38.68,5.38,1.13,5.84.73,1.78-1.55,5.16-1.08,5.82-1l.12,0s-.4-2.52,1.33-3c1.15-.34,3.24.22,7,3C372,156.12,368.22,171.57,368.22,171.57Z" style="fill:#92e3a9;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-8--inject-4"><path d="M393.07,409.84l-8,12.05a18.38,18.38,0,0,0,.8,1.89c1.07,2.24,3.25,5.85,6.75,7.49,4.87,2.29,6.09,5.06,8.92,4.18a4,4,0,0,0,.69-.26c3.34-1.58.81-4.22,1.9-6.33s5.92-2.72,7.68-4.4.72-4,1.64-6.16-1.44-4.16-2.69-4.67-1.1-4.54-3.77-4-3.11-1.86-3.68-2.44S394.42,409.13,393.07,409.84Z" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-9--inject-4"><path d="M396,411.28l-21.52-10.5c-5.38-2.63-16.69-7.77-22.36-10.59a13.83,13.83,0,0,0-5.3-1.58c-2.2-.14-3.66.46-5.28.26-2.63-.33-22.16-.95-22.16-.95L316,400.3l-6.85,25.15,7.2-2.41L344,413.77s10.65,4.7,21.18,4.58c8.35-.1,18.7,4.41,22.64,6.29,1,.49,1.62.8,1.62.8" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-10--inject-4"><path d="M70,312.93V327.4a17.31,17.31,0,0,1-1.71,1.13c-2.13,1.27-6,3.07-9.77,2.5-5.32-.79-7.87.84-9.74-1.45a4.88,4.88,0,0,1-.43-.6c-1.91-3.17,1.66-4,1.92-6.33s-3.43-5.54-4-7.91,1.59-3.7,2-6,3.5-2.67,4.82-2.4,3.43-3.17,5.35-1.23,3.62.17,4.41,0S69.23,311.59,70,312.93Z" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-11--inject-4"><path d="M66.71,312.5l23.74,3.16c5.93.79,18.2,2.77,24.48,3.56a13.79,13.79,0,0,1,5.29,1.61c1.91,1.1,2.8,2.41,4.25,3.14,2.38,1.18,19,11.47,19,11.47l-4.05,12.18-8.21,24.74-4.66-6-17.89-23s-11.47-2-20.18-7.91c-6.9-4.7-18-6.67-22.34-7.29-1.13-.16-1.79-.23-1.79-.23" style="fill:#fff;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-12--inject-4"><path d="M159.93,337.61l-7.87,60-.38,2.93s-19.68-15.67-32-35.92c-.67-1.11-1.27-2.19-1.79-3.26-9-18.43,4.42-30.61,16.39-34.3,12.65-3.9,7.48,3.95,7.48,3.95C150.83,329.78,159.93,337.61,159.93,337.61Z" style="fill:#757575;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-13--inject-4"><path d="M336.87,415.54a36.46,36.46,0,0,1-12.33,6.86c-15.88,5.35-54.85,9.6-54.85,9.6l2.23-4.28,26.35-50.64s31.64,2.79,37.9,8.87c0,0-.79-9.34,6.31,4.21C347.43,399.61,344.48,408.94,336.87,415.54Z" style="fill:#757575;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-14--inject-4"><path d="M136.14,377.08c-9-19.79,18.71-42.9,18.71-42.9L166,332.34c1.14-18.66,39.87-35.07,52.83-36.35,20.62-2,61.72,25.7,71.7,40.08s6.06,32,6.06,32,24.34,19.57,25.82,32.47-41,42.13-88,28.49S156.92,422.54,136.14,377.08Z" style="fill:#757575;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-15--inject-4"><path d="M206,371.14s4.55,12.85,10.07,17.53l2,6.82s4.22-7.14,9.09-3.57,3.23,14.94,3.23,14.94,15-7.14,15.28-15.26A34.51,34.51,0,0,1,248.87,378s-3.25,1.31-4.55,3.72c0,0,7.15-15.44,2.6-19.34S206,371.14,206,371.14Z" style="fill:#92e3a9;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath><clipPath id="freepik--clip-path-16--inject-4"><path d="M245.3,371.46,229,377.09a57.61,57.61,0,0,1-26.57-.43c-14-3.84-21.75-10.82-23.35-12.36l-.31-.31c1,3.9,4.49,8.77,4.49,8.77-10.11-1-15.22-11-15.22-11-3.57,4.55-3,14.62-3,14.62-5.91-14.51-.29-22.09-.29-22.09-2.31-12,2-16.56,2-16.56l3.53,2.27c6.45-14.29,25.19-13.89,25.19-13.89l-2.74,3.17c15.59-7.14,48.06,0,48.06,0l1.63,13.64,5.19-1.62c.15.38.29.78.41,1.18a63.88,63.88,0,0,1,2.51,15.22c0,.1,0,.16,0,.16l1.88-1.29,3.31-2.28S256,364,245.3,371.46Z" style="fill:#92e3a9;stroke:#263238;stroke-linecap:round;stroke-linejoin:round"></path></clipPath></defs><defs><filter id="active" height="200%"><feMorphology in="SourceAlpha" result="DILATED" operator="dilate" radius="2"></feMorphology><feFlood flood-color="#32DFEC" flood-opacity="1" result="PINK"></feFlood><feComposite in="PINK" in2="DILATED" operator="in" result="OUTLINE"></feComposite><feMerge><feMergeNode in="OUTLINE"></feMergeNode><feMergeNode in="SourceGraphic"></feMergeNode></feMerge></filter><filter id="hover" height="200%"><feMorphology in="SourceAlpha" result="DILATED" operator="dilate" radius="2"></feMorphology><feFlood flood-color="#ff0000" flood-opacity="0.5" result="PINK"></feFlood><feComposite in="PINK" in2="DILATED" operator="in" result="OUTLINE"></feComposite><feMerge><feMergeNode in="OUTLINE"></feMergeNode><feMergeNode in="SourceGraphic"></feMergeNode></feMerge><feColorMatrix type="matrix" values="0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 "></feColorMatrix></filter></defs></svg></div><p class="h2 logo-h2"><span>廿壴</span><span>GANXB2</span></p><p class="logo-description">探讨WEB技术.交流日常生活<br>感悟短暂人生.分享简单快乐</p></div></div><script src="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.js"></script><link rel="stylesheet" href="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.css"><script>NProgress.configure({showSpinner:!1,trickleSpeed:100,template:"<div class='custom-loader loader1832' role='bar'></div>"}),NProgress.start(),window.addEventListener("load",(function(){NProgress.done()}))</script><script src="https://lib.baomitu.com/jquery/3.6.0/jquery.min.js"></script><script src="https://lib.baomitu.com/twitter-bootstrap/4.6.1/js/bootstrap.min.js"></script><script src="https://blog.ganxb2.com/js/events.js"></script><script src="https://lib.baomitu.com/typed.js/2.0.12/typed.min.js"></script><script>!function(t,e){var i=Fluid.plugins.typing,n=e.getElementById("subtitle");n&&i&&i(n.getAttribute("data-typed-text"))}(window,document)</script><script defer>Fluid.ctx.dnt||Fluid.utils.createScript("https://js.users.51.la/21372453.js")</script><script src="https://npm.elemecdn.com/aplayer@1.10.1/dist/APlayer.min.js"></script><script>var meting_api="https://api.injahow.cn/meting/?server=:server&type=:type&id=:id&auth=:auth&r=:r"</script><script src="https://npm.elemecdn.com/meting@2.0.1/dist/Meting.min.js"></script><script defer src="https://blog.ganxb2.com/js/leancloud.js"></script><script>Fluid.utils.createScript("https://lib.baomitu.com/tocbot/4.18.0/tocbot.min.js",(function(){var t=jQuery("#toc");if(0!==t.length&&window.tocbot){var o=jQuery("#board-ctn").offset().top;window.tocbot.init({tocSelector:"#toc-body",contentSelector:".markdown-body",headingSelector:CONFIG.toc.headingSelector||"h1,h2,h3,h4,h5,h6",linkClass:"tocbot-link",activeLinkClass:"tocbot-active-link",listClass:"tocbot-list",isCollapsedClass:"tocbot-is-collapsed",collapsibleClass:"tocbot-is-collapsible",collapseDepth:CONFIG.toc.collapseDepth||0,scrollSmooth:!0,headingsOffset:-o}),t.find(".toc-list-item").length>0&&t.css("display","block")}}))</script><script>!function(){var e=CONFIG.code_language.enable&&CONFIG.code_language.default,a=CONFIG.copy_btn;if(e||a){var i="";i+='<div class="code-widget">',i+="LANG",i+="</div>",jQuery(".markdown-body pre").each((function(){var n=jQuery(this);if(!(n.find("code.mermaid").length>0||n.find("span.line").length>0)){var t,c="";e&&(c=CONFIG.code_language.default,n[0].children.length>0&&n[0].children[0].classList.length>=2&&n.children().hasClass("hljs")?c=n[0].children[0].classList[1]:n[0].getAttribute("data-language")?c=n[0].getAttribute("data-language"):n.parent().hasClass("sourceCode")&&n[0].children.length>0&&n[0].children[0].classList.length>=2?(c=n[0].children[0].classList[1],n.parent().addClass("code-wrapper")):n.parent().hasClass("markdown-body")&&0===n[0].classList.length&&n.wrap('<div class="code-wrapper"></div>'),c=c.toUpperCase().replace("NONE",CONFIG.code_language.default)),n.append(i.replace("LANG",c).replace('code-widget">',(t=n[0],(Fluid.utils.getBackgroundLightness(t)>=0?"code-widget-light":"code-widget-dark")+(a?' code-widget copy-btn" data-clipboard-snippet><i class="iconfont icon-copy"></i>':' code-widget">')))),a&&Fluid.utils.createScript("https://lib.baomitu.com/clipboard.js/2.0.10/clipboard.min.js",(function(){new window.ClipboardJS(".copy-btn",{target:function(e){for(var a=e.parentNode.childNodes,i=0;i<a.length;i++)if("CODE"===a[i].tagName)return a[i]}}).on("success",(function(e){e.clearSelection(),e.trigger.innerHTML=e.trigger.innerHTML.replace("icon-copy","icon-success"),setTimeout((function(){e.trigger.innerHTML=e.trigger.innerHTML.replace("icon-success","icon-copy")}),2e3)}))}))}}))}}()</script><script>Fluid.utils.createScript("https://lib.baomitu.com/anchor-js/4.3.1/anchor.min.js",(function(){window.anchors.options={placement:CONFIG.anchorjs.placement,visible:CONFIG.anchorjs.visible},CONFIG.anchorjs.icon&&(window.anchors.options.icon=CONFIG.anchorjs.icon);var o=(CONFIG.anchorjs.element||"h1,h2,h3,h4,h5,h6").split(","),n=[];for(var i of o)n.push(".markdown-body > "+i.trim());"left"===CONFIG.anchorjs.placement&&(window.anchors.options.class="anchorjs-link-left"),window.anchors.add(n.join(", "))}))</script><script>Fluid.utils.createScript("https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.js",(function(){Fluid.plugins.fancyBox()}))</script><script>Fluid.plugins.imageCaption()</script><script src="https://lib.baomitu.com/social-share.js/1.0.16/js/social-share.min.js"></script><script>Fluid.plugins.socialShare(),Fluid.events.checkLink(".post-content a:not(.social-share-icon):not(.fancybox):not(.not-check-link)"),Fluid.events.payToggle()</script><script src="https://blog.ganxb2.com/js/local-search.js"></script><script>Fluid.boot={},Fluid.boot.registerEvents=function(){Fluid.events.billboard(),Fluid.events.registerNavbarEvent(),Fluid.events.registerParallaxEvent(),Fluid.events.registerScrollDownArrowEvent(),Fluid.events.registerScrollTopArrowEvent(),Fluid.events.registerImageLoadedEvent(),Fluid.events.clickEvent(),document.querySelector(".btn-like")&&Fluid.plugins.clickEffect();Fluid.plugins.getRecordHitokoto();document.querySelector(".yiyan").addEventListener("click",t=>{Fluid.plugins.getRecordHitokoto()},!1),Fluid.utils.waitElementVisible("#waline .wl-login-info",()=>{Fluid.plugins.commentBack()}),setTimeout(()=>{Fluid.plugins.commentBack()},800),Fluid.plugins.docSearchHover(),Fluid.plugins.zoomOutDown(),Fluid.plugins.handleCardBlogSetDate()},document.addEventListener("DOMContentLoaded",(function(){window.location.hostname.includes("gitee.io")&&(document.querySelectorAll(".is-update-src").forEach((t,e)=>{t.getAttribute("src")?t.setAttribute("src","https://ganxb2.gitee.io/blog"+t.getAttribute("src")):t.setAttribute("href","https://ganxb2.gitee.io/blog"+t.getAttribute("href"))}),document.querySelectorAll(".tagcloud a, #pagination a").forEach((t,e)=>{console.log("item---",t),t.setAttribute("href","https://ganxb2.gitee.io/blog"+t.getAttribute("href"))})),Fluid.boot.registerEvents(),Fluid.utils.waitElementVisible("#navbar",()=>{setTimeout(()=>{document.querySelector("#navbar").classList.add("header--visible")},2e3)});console.log("%c😍廿壴博客 v3.1.0😍 %chttps://blog.ganxb2.com %c\n\n\t\t\t\t廿壴 - ( ゜- ゜)つロ 乾杯~ \n\t\t\t\t\t\t\t(*≧▽≦)ツ┏━┓⌒ 〓▇3:) 睡你麻痹起来嗨 \n\t\t\t\t\t\t\t\t\t\t\t\t嗨你麻痹我要睡觉 ( ̄ε(# ̄)☆╰╮(ಥ_ಥ) \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t-- 小尾巴说:你是春日的风,柳絮倾覆,道不尽夏夜的星辰\n\t\t\t\t","color: #fadfa3; background: #8371DA; padding:5px; font-size:12px;","background: #9FEE00; padding:5px; font-size:12px; color:#34a3ff;","color: #DA71C9; font-size:12px;")}))</script><noscript><div class="noscript-warning">博客在允许 JavaScript 运行的环境下浏览效果更佳</div></noscript></body></html>