-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
233 lines (212 loc) · 34.9 KB
/
index.html
File metadata and controls
233 lines (212 loc) · 34.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>Big Pineapple - 项目笔记</title><meta name="author" content="DB"><meta name="copyright" content="DB"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="技术博客,分享 Vue、Vite、React Native、Web3 等前端开发经验">
<meta property="og:type" content="website">
<meta property="og:title" content="Big Pineapple">
<meta property="og:url" content="https://dabotxt.github.io/index.html">
<meta property="og:site_name" content="Big Pineapple">
<meta property="og:description" content="技术博客,分享 Vue、Vite、React Native、Web3 等前端开发经验">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://s1.ax1x.com/2022/04/29/LvbDbT.jpg">
<meta property="article:author" content="DB">
<meta property="article:tag" content="Vue">
<meta property="article:tag" content="Vite">
<meta property="article:tag" content="TypeScript">
<meta property="article:tag" content="React Native">
<meta property="article:tag" content="Web3">
<meta property="article:tag" content="前端开发">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://s1.ax1x.com/2022/04/29/LvbDbT.jpg"><script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Big Pineapple",
"alternateName": [
"项目笔记",
"dabotxt.github.io"
],
"url": "https://dabotxt.github.io/"
}</script><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://dabotxt.github.io/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css?v=5.5.4"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@7.1.0/css/all.min.css"><script>
(() => {
const saveToLocal = {
set: (key, value, ttl) => {
if (!ttl) return
const expiry = Date.now() + ttl * 86400000
localStorage.setItem(key, JSON.stringify({ value, expiry }))
},
get: key => {
const itemStr = localStorage.getItem(key)
if (!itemStr) return undefined
const { value, expiry } = JSON.parse(itemStr)
if (Date.now() > expiry) {
localStorage.removeItem(key)
return undefined
}
return value
}
}
window.btf = {
saveToLocal,
getScript: (url, attr = {}) => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
Object.entries(attr).forEach(([key, val]) => script.setAttribute(key, val))
script.onload = script.onreadystatechange = () => {
if (!script.readyState || /loaded|complete/.test(script.readyState)) resolve()
}
script.onerror = reject
document.head.appendChild(script)
}),
getCSS: (url, id) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onload = link.onreadystatechange = () => {
if (!link.readyState || /loaded|complete/.test(link.readyState)) resolve()
}
link.onerror = reject
document.head.appendChild(link)
}),
addGlobalFn: (key, fn, name = false, parent = window) => {
if (!false && key.startsWith('pjax')) return
const globalFn = parent.globalFn || {}
globalFn[key] = globalFn[key] || {}
globalFn[key][name || Object.keys(globalFn[key]).length] = fn
parent.globalFn = globalFn
}
}
const activateDarkMode = () => {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
const activateLightMode = () => {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
btf.activateDarkMode = activateDarkMode
btf.activateLightMode = activateLightMode
const theme = saveToLocal.get('theme')
theme === 'dark' ? activateDarkMode() : theme === 'light' ? activateLightMode() : null
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
document.documentElement.classList.toggle('hide-aside', asideStatus === 'hide')
}
const detectApple = () => {
if (/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)) {
document.documentElement.classList.add('apple')
}
}
detectApple()
})()
</script><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: {"path":"/search.xml","preload":false,"top_n_per_article":1,"unescape":false,"pagination":{"enable":false,"hitsPerPage":8},"languages":{"hits_empty":"未找到符合您查询的内容:${query}","hits_stats":"共找到 ${hits} 篇文章"}},
translate: undefined,
highlight: {"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false,"highlightFullpage":false,"highlightMacStyle":false},
copy: {
success: '复制成功',
error: '复制失败',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '',
dateSuffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: undefined,
lightbox: 'null',
Snackbar: undefined,
infinitegrid: {
js: 'https://cdn.jsdelivr.net/npm/@egjs/infinitegrid@4.13.0/dist/infinitegrid.min.js',
buttonText: '加载更多'
},
isPhotoFigcaption: false,
islazyloadPlugin: false,
isAnchor: false,
percent: {
toc: true,
rightside: false,
},
autoDarkmode: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: 'Big Pineapple',
isHighlightShrink: false,
isToc: false,
pageType: 'home'
}</script><meta name="generator" content="Hexo 6.3.0"></head><body><div class="page" id="body-wrap"><header class="full_page" id="page-header"><nav id="nav"><span id="blog-info"><a class="nav-site-title" href="/"><span class="site-name">Big Pineapple</span></a></span><div id="menus"><div id="search-button"><span class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> 搜索</span></span></div></div></nav><div id="site-info"><h1 id="site-title">Big Pineapple</h1></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts nc" id="recent-posts"><div class="recent-post-items"><div class="recent-post-item"><div class="post_cover left"><a href="/90338fix.html" title="解决iOS分发Non-public API问题"><img class="post-bg" src="https://s1.ax1x.com/2022/05/10/OtyPTx.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="解决iOS分发Non-public API问题"></a></div><div class="recent-post-info"><a class="article-title" href="/90338fix.html" title="解决iOS分发Non-public API问题">解决iOS分发Non-public API问题</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2026-01-29T02:38:20.000Z" title="发表于 2026-01-29 10:38:20">2026-01-29</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/React-Native/">React Native</a></span></div><div class="content">问题描述在提交 iOS 应用到 TestFlight 或 App Store 时,遇到以下错误: 1234590338: Non-public API usage. The app references non-public selectors in Chainbox-QA: _isKeyDown, _modifiedInput, _modifierFlags. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. 这是因为 React Native 的 RCTKeyCommands.m 和其他文件中使用了 Apple 的私有 API 选择器。 解决方案在 Podfile 中添加 post_install 脚本,自动替换这些私有 API 名称。 1. 首先定义 find_and_repl...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/55bb1443.html" title="关于Vite配置preprocessorOptions.scss.additionalData全局引入scss文件无效问题"><img class="post-bg" src="https://s1.ax1x.com/2022/05/05/OeUDJA.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="关于Vite配置preprocessorOptions.scss.additionalData全局引入scss文件无效问题"></a></div><div class="recent-post-info"><a class="article-title" href="/55bb1443.html" title="关于Vite配置preprocessorOptions.scss.additionalData全局引入scss文件无效问题">关于Vite配置preprocessorOptions.scss.additionalData全局引入scss文件无效问题</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2025-01-06T02:48:34.000Z" title="发表于 2025-01-06 10:48:34">2025-01-06</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Vite/">Vite</a></span></div><div class="content">在vite项目中,有时候我们需要全局引入css变量、scss变量,或者引入全局scss样式文件,vite提供了以下这种配置方式123456789//vite.config.jscss: { preprocessorOptions: { //define global scss variable scss: { additionalData: `@import '@/styles/variables.scss';`, } }} 这种写法没有任何问题,并且我已经在一些项目中实践过了,可有一次我创建新项目的时候却无效了,在浏览器上也没有看到任何相关的样式,但是在main.js中引入又是正常的,后来去插件官方论坛找到了解决方法是这样说的。 原来这不是一个bug,只有在main.js引入一个其他scss文件或者在.vue文件中使用 style,并且里面有内容,则 scss.additionalData 配置的全局scss文件就可以正确引入了,还建议我们在 scss.additio...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/e973ebbc.html" title="安装依赖超时443解决"><img class="post-bg" src="/images/npm.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="安装依赖超时443解决"></a></div><div class="recent-post-info"><a class="article-title" href="/e973ebbc.html" title="安装依赖超时443解决">安装依赖超时443解决</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-09-13T07:18:32.000Z" title="发表于 2024-09-13 15:18:32">2024-09-13</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/">开发工具</a></span></div><div class="content">安装依赖的时候有时会遇到安装不上超时等问题 解决方法使用IPv4的方法连接而不是IPv6更改方式 注意别把IPv4也给禁用掉,取消勾选IPv6即可 确认成功后即可正常安装依赖</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/3bc3f9fd.html" title="Git推送失败443"><img class="post-bg" src="/images/git.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Git推送失败443"></a></div><div class="recent-post-info"><a class="article-title" href="/3bc3f9fd.html" title="Git推送失败443">Git推送失败443</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-08-21T09:22:44.000Z" title="发表于 2024-08-21 17:22:44">2024-08-21</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/">开发工具</a></span></div><div class="content">git再推送代码的时候经常会遇到超时或者无法推送等问题本编文章主要解决Failed to connect to github.com port 443 after 21090 ms: Couldn‘t connect to server的问题问题原因:这是由于本机系统代理端口和git端口不一致导致的。解决办法:1.查看自己本机系统代理1设置---网络和Internet---代理---地址---端口 2.修改git配置:(其中的7890改为你电脑的端口号)12git config --global http.proxy http://127.0.0.1:7890git config --global https.proxy http://127.0.0.1:7890 3.再次push就可以成功上传。1git push origin source </div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/36de35a5.html" title="电脑共享VPN到手机方法"><img class="post-bg" src="/images/vpn.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="电脑共享VPN到手机方法"></a></div><div class="recent-post-info"><a class="article-title" href="/36de35a5.html" title="电脑共享VPN到手机方法">电脑共享VPN到手机方法</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-08-21T09:03:09.000Z" title="发表于 2024-08-21 17:03:09">2024-08-21</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/">开发工具</a></span></div><div class="content">实现原理电脑开启VPN,手机和电脑连接同一个WIFI,设置手机代理为电脑的HTTP代理端口,从而实现共享VPN1.设置代理的方法如下图所示,我使用的是clash,在查看clash代理端口时,可以直接在windows搜索栏中输入“代理服务器设置”, 其他的vpn应该类似。 2.手机wifi代理设置完毕之后就可以正常使用网络了</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/8cc9b930.html" title="ts实现康威生命游戏"><img class="post-bg" src="https://s1.ax1x.com/2022/05/05/OeYnqe.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="ts实现康威生命游戏"></a></div><div class="recent-post-info"><a class="article-title" href="/8cc9b930.html" title="ts实现康威生命游戏">ts实现康威生命游戏</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-08-12T03:54:00.000Z" title="发表于 2024-08-12 11:54:00">2024-08-12</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/TypeScript/">TypeScript</a></span></div><div class="content">生命游戏中,对于任意细胞,规则如下: 每个细胞有两种状态 - 存活或死亡,每个细胞与以自身为中心的周围八格细胞产生互动(如图,黑色为存活,白色为死亡) 当前细胞为存活状态时,当周围的存活细胞低于2个时(不包含2个),该细胞变成死亡状态。(模拟生命数量稀少) 当前细胞为存活状态时,当周围有2个或3个存活细胞时,该细胞保持原样。 当前细胞为存活状态时,当周围有超过3个存活细胞时,该细胞变成死亡状态。(模拟生命数量过多) 当前细胞为死亡状态时,当周围有3个存活细胞时,该细胞变成存活状态。(模拟繁殖) 可以把最初的细胞结构定义为种子,当所有在种子中的细胞同时被以上规则处理后,可以得到第一代细胞图。按规则继续处理当前的细胞图,可以得到下一代的细胞图,周而复始。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263export class GameOfLife { private activeC...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/4c3e688d.html" title="OKX插件登录BTC"><img class="post-bg" src="/images/okx-banner.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="OKX插件登录BTC"></a></div><div class="recent-post-info"><a class="article-title" href="/4c3e688d.html" title="OKX插件登录BTC">OKX插件登录BTC</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-08-09T07:05:01.000Z" title="发表于 2024-08-09 15:05:01">2024-08-09</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Web3/">Web3</a></span></div><div class="content">由于BTC网络的登录并不像wallet connect EVM网络那样使用现成的包直接可以建立连接器只要你浏览器内部装有OKX插件就可以直接唤起并登录具体方法如下PC端登录方法1234567const connectBTC = () => { if (typeof (window as any).okxwallet !== 'undefined') { const res = await (window as any).okxwallet.bitcoin.requestAccounts(); } else { console.log('OKX Wallet is not installed.'); }} PC发起交易 目前仅支持BTC主网12345678910111213const sendBTC = () => { try { await (window as any).okxwal...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/c49bf0df.html" title="Wagmi返回合约完整错误日志"><img class="post-bg" src="https://s1.ax1x.com/2022/05/10/OtyPTx.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Wagmi返回合约完整错误日志"></a></div><div class="recent-post-info"><a class="article-title" href="/c49bf0df.html" title="Wagmi返回合约完整错误日志">Wagmi返回合约完整错误日志</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-08-09T06:44:36.000Z" title="发表于 2024-08-09 14:44:36">2024-08-09</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Web3/">Web3</a></span></div><div class="content">使用Wallet Connect + Wagmi 集成EVM登录交易等操作遇到的一些问题使用useWriteContract发起合约交易直接打印错误日志返回的信息不完整官方文档也没有给到完整的Error信息返回处理,搜也搜不到,去wagmi的discord下面找到了用户自己写的一个解析Wagmi的方法如下12345678910111213141516171819202122import { BaseError } from "wagmi";const { data: hash, isPending, writeContractAsync, isSuccess: hashSuccess } = useWriteContract()const massComputed = () => { writeContractAsync({ address: contractAddress, abi: abi, functionName: 'contra...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/35eaf0f1.html" title="播放Spine动画"><img class="post-bg" src="https://zh.esotericsoftware.com/img/core/spine_logo_bright.svg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="播放Spine动画"></a></div><div class="recent-post-info"><a class="article-title" href="/35eaf0f1.html" title="播放Spine动画">播放Spine动画</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-08-08T10:20:44.000Z" title="发表于 2024-08-08 18:20:44">2024-08-08</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%89%8D%E7%AB%AF%E5%8A%A8%E7%94%BB/">前端动画</a></span></div><div class="content">安装spine官方依赖1pnpm add @esotericsoftware/spine-player 播放函数(需将动画文件传到CDN或保存到项目文件夹)123456789101112131415161718const playerContainerRef: any = useRef<HTMLDivElement>(null);const loadFiles = () => { const skeletonJsonUrl = `https://xxx/atlas/box-gem/box.json` const atlasUrl = `https://xxx/atlas/box-gem/box.atlas` const player: any = new SpinePlayer(playerContainerRef.current, { jsonUrl: skeletonJsonUrl, atlasUrl: atlasUrl, animation: 'idle',...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/e5a32ca1.html" title="创建UTXO"><img class="post-bg" src="https://s21.ax1x.com/2024/08/08/pkzactO.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="创建UTXO"></a></div><div class="recent-post-info"><a class="article-title" href="/e5a32ca1.html" title="创建UTXO">创建UTXO</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-08-08T10:00:20.000Z" title="发表于 2024-08-08 18:00:20">2024-08-08</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/Web3/">Web3</a></span></div><div class="content">BTC创建UTXO并用Joy ID广播安装依赖1pnpm install bitcoinjs-lib tiny-secp256k1 axios @joyid/bitcoin 获取剩余UTXO123456789const getUtxos = async (address: string) => { try { const response = await axios.get(`https://blockstream.info/testnet/api/address/${address}/utxo`); return response.data; } catch (error) { console.error('Error fetching UTXO:', error); throw error; }}; 创建交易1234567891011121314151617181920212223242526272...</div></div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><a class="page-number" href="/page/3/#content-inner">3</a><a class="extend next" rel="next" href="/page/2/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info text-center"><div class="avatar-img"><img src="https://s1.ax1x.com/2022/04/29/LvbDbT.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info-name">DB</div><div class="author-info-description">事当决而不决者,愚人也</div><div class="site-data"><a href="/archives/"><div class="headline">文章</div><div class="length-num">22</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">14</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">10</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://haiyong.site/moyu/shengchengshu.html"><i class="iconfont icon-youxishoubing"></i><span>Just Relax</span></a></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content"><p align="center">微信号:***</p>
<p align="center">QQ号:***</p>
</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/90338fix.html" title="解决iOS分发Non-public API问题"><img src="https://s1.ax1x.com/2022/05/10/OtyPTx.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="解决iOS分发Non-public API问题"/></a><div class="content"><a class="title" href="/90338fix.html" title="解决iOS分发Non-public API问题">解决iOS分发Non-public API问题</a><time datetime="2026-01-29T02:38:20.000Z" title="发表于 2026-01-29 10:38:20">2026-01-29</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/55bb1443.html" title="关于Vite配置preprocessorOptions.scss.additionalData全局引入scss文件无效问题"><img src="https://s1.ax1x.com/2022/05/05/OeUDJA.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="关于Vite配置preprocessorOptions.scss.additionalData全局引入scss文件无效问题"/></a><div class="content"><a class="title" href="/55bb1443.html" title="关于Vite配置preprocessorOptions.scss.additionalData全局引入scss文件无效问题">关于Vite配置preprocessorOptions.scss.additionalData全局引入scss文件无效问题</a><time datetime="2025-01-06T02:48:34.000Z" title="发表于 2025-01-06 10:48:34">2025-01-06</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/e973ebbc.html" title="安装依赖超时443解决"><img src="/images/npm.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="安装依赖超时443解决"/></a><div class="content"><a class="title" href="/e973ebbc.html" title="安装依赖超时443解决">安装依赖超时443解决</a><time datetime="2024-09-13T07:18:32.000Z" title="发表于 2024-09-13 15:18:32">2024-09-13</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/3bc3f9fd.html" title="Git推送失败443"><img src="/images/git.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Git推送失败443"/></a><div class="content"><a class="title" href="/3bc3f9fd.html" title="Git推送失败443">Git推送失败443</a><time datetime="2024-08-21T09:22:44.000Z" title="发表于 2024-08-21 17:22:44">2024-08-21</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/36de35a5.html" title="电脑共享VPN到手机方法"><img src="/images/vpn.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="电脑共享VPN到手机方法"/></a><div class="content"><a class="title" href="/36de35a5.html" title="电脑共享VPN到手机方法">电脑共享VPN到手机方法</a><time datetime="2024-08-21T09:03:09.000Z" title="发表于 2024-08-21 17:03:09">2024-08-21</time></div></div></div></div><div class="card-widget card-categories"><div class="item-headline">
<i class="fas fa-folder-open"></i>
<span>分类</span>
<a class="card-more-btn" href="/categories/" title="查看更多">
<i class="fas fa-angle-right"></i></a>
</div>
<ul class="card-category-list" id="aside-cat-list">
<li class="card-category-list-item "><a class="card-category-list-link" href="/categories/CSS/"><span class="card-category-list-name">CSS</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/React-Native/"><span class="card-category-list-name">React Native</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/TypeScript/"><span class="card-category-list-name">TypeScript</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Vite/"><span class="card-category-list-name">Vite</span><span class="card-category-list-count">3</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Vue/"><span class="card-category-list-name">Vue</span><span class="card-category-list-count">3</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Web3/"><span class="card-category-list-name">Web3</span><span class="card-category-list-count">5</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%89%8D%E7%AB%AF%E5%8A%A8%E7%94%BB/"><span class="card-category-list-name">前端动画</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/"><span class="card-category-list-name">开发工具</span><span class="card-category-list-count">3</span></a></li>
</ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/Git/" style="font-size: 1.15em; color: rgb(191, 138, 78);">Git</a><a href="/tags/BTC/" style="font-size: 1.3em; color: rgb(50, 50, 115);">BTC</a><a href="/tags/Web3-js/" style="font-size: 1.45em; color: rgb(95, 167, 50);">Web3.js</a><a href="/tags/Css/" style="font-size: 1.3em; color: rgb(67, 121, 65);">Css</a><a href="/tags/TypeScript/" style="font-size: 1.3em; color: rgb(50, 132, 57);">TypeScript</a><a href="/tags/Pinia/" style="font-size: 1.15em; color: rgb(62, 50, 93);">Pinia</a><a href="/tags/Vue/" style="font-size: 1.3em; color: rgb(68, 151, 153);">Vue</a><a href="/tags/Vite/" style="font-size: 1.45em; color: rgb(89, 50, 50);">Vite</a><a href="/tags/WeiXinPay/" style="font-size: 1.15em; color: rgb(98, 68, 155);">WeiXinPay</a><a href="/tags/NPM/" style="font-size: 1.15em; color: rgb(59, 50, 84);">NPM</a><a href="/tags/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/" style="font-size: 1.15em; color: rgb(103, 163, 99);">微信小程序</a><a href="/tags/Animate/" style="font-size: 1.15em; color: rgb(90, 114, 50);">Animate</a><a href="/tags/VPN/" style="font-size: 1.15em; color: rgb(50, 50, 50);">VPN</a><a href="/tags/React-Native/" style="font-size: 1.15em; color: rgb(151, 50, 50);">React Native</a></div></div><div class="card-widget card-archives">
<div class="item-headline">
<i class="fas fa-archive"></i>
<span>归档</span>
</div>
<ul class="card-archive-list">
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2026/01/">
<span class="card-archive-list-date">
一月 2026
</span>
<span class="card-archive-list-count">1</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2025/01/">
<span class="card-archive-list-date">
一月 2025
</span>
<span class="card-archive-list-count">1</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2024/09/">
<span class="card-archive-list-date">
九月 2024
</span>
<span class="card-archive-list-count">1</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2024/08/">
<span class="card-archive-list-date">
八月 2024
</span>
<span class="card-archive-list-count">7</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2022/05/">
<span class="card-archive-list-date">
五月 2022
</span>
<span class="card-archive-list-count">8</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2022/04/">
<span class="card-archive-list-date">
四月 2022
</span>
<span class="card-archive-list-count">4</span>
</a>
</li>
</ul>
</div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站信息</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">22</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总浏览量 :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2026-01-29T08:25:46.187Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer"><div class="footer-other"><div class="footer-copyright"><span class="copyright">© 2022 - 2026 By DB</span><span class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo 6.3.0</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly 5.5.4</a></span></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="日间和夜间模式切换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside-config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js?v=5.5.4"></script><script src="/js/main.js?v=5.5.4"></script><div class="js-pjax"></div><script id="canvas_nest" defer="defer" color="0,0,255" opacity="0.7" zIndex="-1" count="99" mobile="false" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1.1.6/dist/canvas-nest.min.js"></script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><i class="fas fa-spinner fa-pulse" id="loading-status" hidden="hidden"></i><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="text-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span> 数据加载中</span></div><div class="local-search-input"><input placeholder="搜索文章..." type="text"/></div><hr/><div id="local-search-results"></div><div class="ais-Pagination" id="local-search-pagination" style="display:none;"><ul class="ais-Pagination-list"></ul></div><div id="local-search-stats"></div></div><div id="search-mask"></div><script src="/js/search/local-search.js?v=5.5.4"></script></div></div></body></html>