自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

flytam的博客

Github: https://github.com/flytam 微信公众号Geek前端

  • 博客(97)
  • 收藏
  • 关注

原创 __dirname 在ES模块中的使用

ECMAScript模块是 JavaScript 的新标准格式。在Node.js中越来越多的库逐渐从从CommonJS转移到ES模块注:这里是指“真”ES 模块并不是指代码中 Node.js 中使用 import 写法但是实际被 tsc 转成 commonJS 的形式但是Node.js ES 开发中此前有一个棘手的问题是获取当前文件目录、路径。不过这个问题在最近也已经解决。

2024-04-07 17:53:08 433

原创 终端走代理

【代码】终端走代理。

2024-04-05 14:58:03 407

原创 巧用 exports 和 typeVersions 提升 npm 包用户使用体验

巧用 exports 和 typeVersions 提升 npm 包用户使用体验

2023-05-07 10:40:51 545

原创 苹果快捷指令分享报错“你必须登录iClound才能执行此操作”

报错解决登录iCloud如果登录iCloud还是报错,检查是否打开iCloud云盘和快捷指令,打开即可

2023-05-02 11:47:32 2344

原创 React Labs: 我们最近在做什么——2023 年 3 月

最新的幕后花絮,展示了 React 项目中正在进行的工作。最引人注目的更新是 React Forget 背后的进展——这是一个优化编译器

2023-04-04 17:25:41 601

原创 mac配置代码编辑器打开多个项目时在一个tab下

设置->桌面与程序坞->打开文稿时首选标签页->始终。

2023-03-17 10:55:03 183

原创 Koa源码学习

koa是一个非常流行的Node.js http框架。本文我们来学习下它的使用和相关源码来自官网的介绍:Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。

2023-03-11 10:56:04 438

原创 一个超方便将现有博客生成vuepress2文档站的插件

闲来无事,研究了一下vuepress2和它的插件机制,写了一个可以一键通过已有博客生成vuepress2的文档站的vuepress2插件

2022-12-10 23:31:24 388

原创 vscode debugger简记

【代码】vscode端点配置。

2022-08-25 20:13:08 520

原创 AbortController的使用

今天介绍一个有用的 JavaScript api `AbortController`

2022-06-24 14:56:31 2000

原创 performance简记

参考单位是时间戳单位是相对于文档开始的时间

2022-06-06 20:25:06 209

原创 如何将Node.js库转换到Deno

由于Node和Deno的一些差异,一个库要想同时支持Node和Deno是需要一些改造的

2022-05-28 15:32:14 266

原创 JavaScript不再需要写void 0了

我们经常会在一些代码中看到void 0的写法,这种写法其实现在已经不需要了

2022-05-23 11:49:49 181

原创 iterm2(zsh)粘贴慢解决办法

# .zshrcpasteinit() { OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]} zle -N self-insert url-quote-magic # I wonder if you'd need `.url-quote-magic`?}pastefinish() { zle -N self-insert $OLD_SELF_INSERT}zstyle :bracketed-paste-magic paste-

2022-05-06 10:21:46 383

原创 4个避免使用npm link的理由

使用npm install或者npx link去进行软连接一个本地包作为依赖而不是使用npm link

2022-04-30 11:11:31 892

原创 使用TypeScript并升级到React 18

为了支持React 18,React类型定义进行了升级,其中包含了一些break change。本文将讲述在TypeScript中如何升级到React 18

2022-04-23 15:15:38 2083

原创 React中的浅比较是如何工作的?

本文翻译自https://www.chakshunyu.com/blog/how-does-shallow-comparison-work-in-react/浅比较这个概念在React开发过程中很常见。它在不同的过程中扮演着关键的角色,也可以在React组件生命周期的几个地方找到。判断class组件是否应该更新、React hood的依赖数组、通React.memo 缓存处理等例子如果曾经阅读过官方的React文档,我们可能会经常到看到浅比较这个概念。但通常只是一个比较简单的解释。所以,本文将研究浅.

2022-04-15 22:22:02 931

原创 打造Github Issue到Hexo部署自动工作流

前言平时不少同学都有写博客的习惯,这里介绍一种通过Github Issue写博客并自动部署hexo到Github Page的工作流。本文主要介绍什么是Github action以及它的基本用法如何开发并发布一个Github action如何打造Github issue写博客并自动部署hexo到Github Page的工作流什么是Github actionGitHub action 是一个持续集成和持续交付平台,可以自动化构建、测试和部署。例如可以创建工作流来构建和测试仓库的每个pr,或将合并

2022-04-10 16:37:47 442

原创 javascript装饰器进入stage3了

前言在3月底,js的装饰器提案终于进入了stage3,同时其metadata部分单独拆开仍处于stage2阶段([详见](https://github.com/tc39/proposal-decorators/pull/454))。但是此装饰器却非平时我们广泛使用的装饰器。通过本文我们将了解下该js提案下装饰器的用法并对比和先前装饰器提案下用法的区别decorator提案的历史在[babel-plugin-proposal-decorators](https://babeljs.io/docs/en

2022-04-05 14:15:35 1435

原创 iterm2 terminal存档

# 安装iterm2brew install --cask iterm2# 安装oh-my-zshsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"# 插件安装# 语法建议提示https://github.com/zsh-users/zsh-autosuggestions# 语法高亮https://github.com/zsh-users/zsh-syn

2022-03-12 09:55:14 245

原创 mac vscode vim 中文输入法搜狗问题处理

placeholder

2022-02-23 10:41:58 735

原创 从一个webpack打包bug到探索resolve背后的机制

背景最近在业务项目配置升级改造的时候遇到了一个诡异的运行时报错经过进一步调试发现,原因是在业务代码的lib/axios.ts的import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';这行代码的引入居然是引入的 业务代码的lib/``axios``.ts而不是node_modules中的axios由于项目使用的是司内一个二次封装webpack的框架,找相关同学排查后发现是tsconfig-paths-we

2021-11-03 09:04:49 414

原创 React Native性能优化:应该做和不应该做的

翻译原文:https://medium.com/crowdbotics/react-native-performance-do-and-dont-88424e873bbd在使用一些框架例如React Native去实际开发移动端应用的时候,性能是一个重要的问题。React Native默认情况下的性能是没有问题的,但是在实际开发React Native的时候,我们也可能会遇到一些性能相关的问题。这些问题是很难通过组件本身修复去解决的。在这篇文章中,我们会提供一些建议来优化开发React Native.

2021-03-03 19:36:36 668 1

原创 译:npm 7已经可以使用了

原文正如大家所期待, npm CLI 7 现在已经可以使用了除了一些新特性和不兼容更改之外。与npm 6相比,我们对npm 7的性能方面产生了一些重要的影响,其中包括:依赖包数量上减少了54%(npm 7 67个,npm 6 123个)代码测试覆盖率增加了54%(npm 7 94% vs npm 6 77%)在各种示例中的各种benchmarks中看到了显着的性能提升注意,npm 7现在已发布到npm仓库的最新版本,执行npm install --global 时将默认安装npm 7。如.

2021-02-08 18:20:40 2432 1

原创 react useCallback完美替代方案

react函数组件为了保持引用不变,很多时候需要借助useCallback,但是useCallback强依赖于外部变量,必须传个依赖变量,万一漏传了很容易出问题。比较函数复杂时较麻烦,使用这个即可完美解决,引用不变,调用肯定是最新的,并且不需依赖just 记录方便cpfunction usePersistCallback<T extends(...args: any[]) => any>(fn?: T) { const ref = useRef<T>(); ref

2021-01-20 21:26:55 678

原创 ios模拟器安装证书

1、生成pem openssl x509 -in root.crt -out my.pem -outform PEM2、clone仓库git clone https://github.com/ADVTOOLS/ADVTrustStore.gitcd ADVTrustStore3、执行 ./ADVTrustStore/iosCertTrustManager.py -a my.pem

2021-01-08 18:17:04 837

原创 2020的最后一天,不妨了解下装饰器

装饰器目前还处于提案阶段,要在javascript中使用装饰器,我们必须借助babel或typescript的转码能力为什么要用装饰器引入装饰器更能够便于代码逻辑的解藕和复用。举一个例子举一个非常常见的需求。假设我们有一个类Network,它有一个异步getList方法class Network { async getList() { return await list(); }}有一天,我们想给它加个全局loading,那么我们可能会这么写class Network {.

2020-12-31 17:44:34 252

原创 vue tsx render函数 transition动画不生效

给transition子元素加上一个key,显示异常时使用不同的key即可<transition><div key={this.isActive?'1':'2'} style={{display:this.isActive?'block':'none'}} > hello</div></transition>参考

2020-12-08 15:09:04 1576

原创 77.9K Star 的 Axios 项目如何优雅实现请求重试

axios是什么,无需多讲,axios解析的可以看下77.9K Star 的 Axios 项目有哪些值得借鉴的地方这篇文章为什么需要请求重试项目中,经常会有很多用户的网络抽风或者各种原因造成偶发性的网络异常请求错误,如果没有重试机制,有时候体验就比较糟糕。这个时候实现网络错误请求错误重试也能比较好的解决这种偶发场景。如何去做呢我们可以使用axios-retry这个库去实现重拾。用法也非常简单import axiosRetry from 'axios-retry';axiosRetry(axi.

2020-11-16 20:55:58 242

原创 gitlab ci本地调试

1、安装gitlab runner2、执行gitlab-runner exec docker job_name 即可

2020-11-02 15:33:21 1742

原创 puppeteer 无法获取跨域iframe内容解决

puppeteer访问的页面存在跨域iframe时,会存在无法获取iframe内容的问题。解决方法,puppeteer加上启动参数 args: [ '--disable-web-security', '--disable-features=IsolateOrigins,site-per-process', // 很关键... ]如: const browser = await puppeteer.launch({ args: [ '--disable-

2020-10-27 20:48:53 2105

原创 互联网寒冬,一年经验字节跳动、虾皮、快手、拼多多前端面试总结

题主2019年非985/211非计算机专业本科毕业(野生程序员),之前在腾讯实习了半年多+毕业后在腾讯工作了一年,一直都是前端开发。年中的时候因个人原因,打算离开腾讯,到外面看看,投了若干简历,最终面试了字节跳动、虾皮、快手、拼多多这4家公司。有的喜有的忧,本文是对本次面试的一个总结。快手快手是最早约的面试,在boss直聘上投完大概几天就约了。也是我本次第一家面试的公司。时间某个工作日的晚上8点,那天早早溜回家面试了,是在牛客网上进行的主要问的问题如下:react16新增了哪些生命周期、有.

2020-10-24 21:01:43 2282

原创 deno 初体验,实战记录一个node项目迁移到deno需要做什么

本文以csdnsynchexo迁移到deno实现进行一步步探索说明。csdnsynchexo是一个爬取 csdn 博客内容生成 hexo 源文件内容的简单工具,正常版本使用 nodejs 实现,。最近 node 之父 ry 大神的 deno 也发布了 1.0,就想实践一下,从 node 版本迁移升级到 deno。本文主要记录一个 nodejs 应用迁移到 deno 需要做哪些工作,还涉及到一些非常基础的 deno 概念。如果你熟悉 nodejs,阅读本文的难度几乎为 0迁移后项目github地址.

2020-06-09 09:41:19 2311 1

原创 日常开发过程中实际场景下使用git的一些简单总结

只总结一些高频常用操作,不涉及一些骚操作Question1公司内部有代码仓库和 github 仓库邮箱不一致。例如已经全局配置了公司内的信息git config --global user.name "xxx"git config --global user.email "[email protected]"使用该配置推送到自己的 github 仓库后,那里是看不到 contribute 记录的解决:用户.ssh 目录下新建 config 文件,配置参考如下# tencent Host.

2020-05-21 11:08:28 503

原创 如何实现一个惊艳面试官的非递归版本的 js 对象深拷贝方法

众所周知,js 语言本身是不提供对象的深拷贝的功能,无论是直接赋值、Object.assign、展开运算符...都只是浅拷贝,关于 js 的深浅拷贝的一些概念可以参考我比较久以前写过的一篇文章关于如何实现深拷贝,网上有很多相关的文章和实现都非常完美,本文主要讲述的是用一种非常规的使用非递归方法实现深拷贝本文的深拷贝只考虑数组、对象、简单值三种数据类型要实现判断数据类型,先来实现这 3...

2020-03-28 13:49:58 958

原创 Go项目接入travis

上一篇文章提到了npm的接入 travis 实现自动发布 npm 包的方法,本文主要讲述 Go 项目的使用,主要分为执行单元测试和 build 打包发步到 github release。具体 travis 的基本操作参考上文即可,本文只讲述不同的部分单元测试本文不讲述 Go 的单元测试如何编写,这里直接以filenamify(一个合法化文件路径的库)为例子。已为filenamify.go编...

2020-03-21 12:03:53 474

原创 带你找出react中,回调函数绑定this最完美的写法!

相信每一个人写过react的人都对react组件的的this绑定有或多或少的了解在我看来,有若干种this写法,我们通过本文,一步步找优缺点,筛选出最完美的react this写法!(有点小激动)1、远古时代 React.createClass说实话,在我接触react的时候,这种写法就只在相关文章见到了。React.createClass会自动绑定所有函数的this到组件上React...

2020-03-09 20:17:07 1321 1

原创 都 2020 年了,你还在手动发布 npm 包吗

超详细入门npm 接入 travis cli 发包0、注册travis账户,并授权github访问权限1、初始化工作1.1 安装travis的 cli 工具$ sudo gem install travis1.2 项目根目录新建一个空的.travis.yml文件。2、获取 npm auth tokennpm auth token 的作用就是让 travis 获取你的 np...

2020-03-08 21:59:13 1106

原创 Go处理字符串到合法文件名

使用filenamify库Demopackage mainimport ( "github.com/flytam/filenamify" "fmt")func main() { output,err :=filenamify.Filenamify(`<foo/bar>`,filenamify.Options{}) fmt.Println(output,err)...

2020-02-08 11:18:24 1228

原创 一个超方便一键将 csdn 博客生成 hexo 源文件的工具

这个工具很早之前写的了。新年疫情原因宅家太无聊了,简单写下文档使用说明…大家在日常写博客的过程中,肯定会遇到想迁移博客的时候。例如我之前就遇到想把 csdn 博客文章迁移到 hexo 上。hexo 的文章源文件就是一些符合特定格式 markdown 的文章。因此要实现也比较简单,对 csdn博客首页 进行爬虫,(都是一些一些基础的获取标签之类的内容操作了,不详细讲了),然后生成符合特定格式 ...

2020-01-28 18:19:39 955 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除