以前做了个webpack插件domain-replace-loader,主要是实现将前端JS中域名进行替换,比如替换为新的域名或者全局window的JS属性,这样就避免了需要人工检索所有repo仓库。但有些需求并不是替换域名。最近就接到了
同事提过来的需求,即需要将代码里的变量名进行替换。比如原先叫T_PROJECT, 需要自动修改为P_PROJECT。为此我改造了下插件,使其支持了变量名自动修改。

改造思路

本身插件能做到替换的关键点是利用esprima解析代码,然后分析每个token,然后根据token的类型进行操作。

可以看到属性对象的type是Identifier,因此只需要判断属性对象的name是否符合要求,如果符合要求,则进行替换。

阅读全文 »

2024年,我解决了Medium中使用Stripe收款问题,因此年初时便开通了Medium会员并加入MPP计划,开始尝试写作。这里分析下一年来Medium的收入情况及确定之后的方向。

先看下微薄的收益情况。

收入情况

总收益 = $12.95

阅读全文 »

使用npm开发中会发现,比如将node_modules文件夹删除,然后重新安装依赖,会发现安装速度非常快,这是因为npm有缓存机制。

什么是npm缓存

npm缓存是npm在安装依赖时,将依赖包下载到本地缓存目录,下次安装时,如果依赖包已经在缓存目录中,则直接从缓存目录中获取,而不是重新下载。

如何查看npm缓存

1
2
3
4

npm config get cache

npm cache ls
阅读全文 »

春节前后DeepSeek爆火以来,无论WEB服务还是API经常出现不稳定的情况,本文介绍我发现的几个方式来相对稳定的使用DeepSeek服务。

服务器繁忙,请稍后再试。

DeepSeek以下简称DS。

方案1-走代理访问DeepSeek

阅读全文 »

最近有需要修改WEB服务的GZIP配置,简单查看network,发现respond头部写着server:openresty/1.21.4.1,因此知道了网关侧使用的是openresty。在跟后端确认后,需要修改GZIP配置,因此需要对openresty进行一些了解。

什么是openresty

openresty是一个基于nginx的web服务器,它集成了nginx的强大性能和lua的动态性。

openresty修改GZIP配置

openresty的GZIP配置与nginx的配置类似,主要通过gzip指令进行配置。

阅读全文 »
0%