Blog

nextjs项目构建发布速度优化

最近接触一个项目使用的nextjs,构建发布整个时间消耗为12min,或者更长。查看整个构建过程,发现还是有优化点的,这里mark下。

Mar 20, 2025

OpenEmu连接Xbox手柄

Mac下OpenEmu玩游戏,如果直接使用键盘操作,会很不方便。手上有Xbox游戏主机,查询后发现Xbox手柄可以连接Mac来玩OpenEmu的小游戏。这里mark下操作步骤。

Mar 20, 2025

Monaco Editor 实现基于 JSON Schema 的智能提示

最近使用monaco-editor来实现JSON数据编辑器,为了提升用户体验,需要实现JSON Schema的智能提示。研究后发现了实现方法,因此这里Mark下。

Mar 19, 2025

入手MacBook Air m4

最近入手了MacBook Air M4,使用了几天觉得很不错,这里mark下我的使用体验。

Mar 19, 2025

EventEmitter中的once处理

EventEmitter初版 class EventEmitter{ constructor(){ this.events={} } on(type,listener){ if(!this.events[type]){ this.events[type]=[] } this.events[type].push(listener) } emit(type,...args){ this.events[type].forEach(listener=>{ listener.call(this,...args) }) } off(type,listener){ if(this.events[type]){ const index=this.events[type].indexOf(listener) if(index!==-1){ this.events[type].splice(index,1) } } } once(type,listener){ const onceListener=(...args)=>{ listener.call(this,...args) this.off(type,onceListener) } this.on(type,onceListener) } } 测试 const eventEmitter=new EventEmitter() const listener=(args)=>{ console.log(args); } eventEmitter.once('test',listener) eventEmitter.off('test',listener) eventEmitter.emit('test',{a:1}) 执行上述代码,会发现test事件被触发了一次,预期应该是不执行的,因为off了。解决办法如下。

Mar 18, 2025

VSC WebView中加载node_modules资源

最近开发的gitlink插件遇到个问题,在WebView中加载node_modules资源,当然也可以直接使用CDN资源,只是速度上来说不如直接加载本地资源,因此这里解决下如何加载node_modules资源。

Mar 17, 2025

VSC拓展国际化支持

最近开发的VSC拓展需要做下国际化,发现官方文档介绍这里是空白,只是给了个例子,这里就总结下如何做国际化。

Mar 14, 2025

HTTP请求报文中的Host字段

最近刷到一个前端问题在发送 http 请求报文时,Host 是必要的吗,我平时没注意这点,因此简单查了下,这里总结下

Mar 13, 2025

Stripe使用指南

Medium的MPP,GitHub的Sponsor,都是通过Stripe来实现打款支付。这里记录下Stripe遇到的一些问题。

Mar 12, 2025

Screen Studio使用指南

简介 Screen Studio 是一款功能强大的屏幕录制工具,仅支持 macOS。它可以帮助用户轻松录制屏幕上的操作,并生成高质量的视频文件。 最近因为有视频录制需求,入了永久版229刀,使用后感觉还不错,分享下使用心得。

Mar 12, 2025