手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2024年09月的文章

用 nodeenv 为不同的项目指定不同的 nodejs 版本

js 真是一个有意思的东西。node_modules 到处可见,而且目录还特别在,然后 node 12\14\16\18,现在都快20了。

于是就会出现一个情况,磁盘里有 N 个 JS 项目,各自基于不同的 node 版本。当然 node 有 n / nvm 等相应的工具。直接运行就可以切换相应的版本。但如果你想同时开发两个不同版本的项目,就有点麻烦了。这边目录先 n 18,然后 npm run ,再回到另一个目录 n 16 && npm run 。看起来没问题,各自都能跑。
可是如果现在 n18的项目需要杀进程重启。那就得再运行 n18,恢复成18,然后再 run .....
 
不是说其他语言没有这种情况,比如 PHP,其实也有很多版本,还有 Python。但 PHP 可以通过安装不同的 php 版本,再使用 nginx 进行反代就完事了。python 也有 virtualenv。而 JS 居然没有。
 
搜了下网络,突然发现了 nodeenv。居然是利用 virtualenv 的方法来维护多版本。nodeenv 的安装我就不细说了:pip install nodeenv 就行了。
 
在相应的目录下,运行一下:nodeenv --node=16.xx.x --with-npm {dir}。这样一个简单的方法就在 dir 目录下生成了一个环境版本。然后运行 . ./dir/env/active ,会发现命令行前面多了个括号(env) <---根据目录名来。
在这个目录下面,直接运行 node -v,你会发现这个目录下的 node 就是你刚才指定安装的版本。也因为是--with-npm,所以 npm run 就直接可用了。
 
一切就是这样的自然。
当然也不是没有缺点,比如,这个 env的目录会很大,毕竟一个 node / npm,都在里面。但,至少可以解决问题了

奇怪的发现最近几乎没有垃圾评论了

这真是一个奇怪的事情,以前垃圾评论非常多啊。难道是因为我用了 cf 的 dns的关系?连 https 都是从 cf 自动生成的。

感觉半个月了,居然没有一条垃圾评论。非常开心~
 
akismit 都不用装了。

exceljs的一些注意事项

 在使用 exceljs 进行导出的时候 。如果是全部自己写的代码那控制起来会比较方便。你 mergeCell 或者 splitRow,都没什么大问题,但要注意几点

1、时刻观察:worksheet._merges,因为在 mergeCell 的时候 已经合并过的表,是不能再次被合并的。会报错,这时候 可以用 getCell().model,看看是不是 master。如果是的话,可以先 unMergeSells()
2、在 mergeCells后,如果你有 insertRows 等类似的操作。只要影响到刚才 merge 过的单元格时,原来所有的 merge 都会被清空,这点要注意。
3、worksheet 可以设置冻结行和列,直接通过 worksheet.views,就可以定义 state:frozen,定义好左上角开始的坐标,然后定义 xSplit 和 ySplit 就行了。
 
更多的使用方法,还是看官方吧:https://github.com/exceljs/exceljs/blob/master/README_zh.md
 

M9折腾记

 买了个 M8s 和 M9,M8s 买的比较早,还是 N6000,于是在上面装了个 sentry,准备替换掉我在轻量服务器上装的这个玩意。但发现有点小浪费,再加上sentry 是直接通过 install.sh 来安装的。很多东西没办法更好的处理,于是先买了台 M9,上了32G 内存,准备用来跑跑虚拟器啥的。考虑在上面再安装一下这个 sentry,将 M8s 和我的轻量解放出来。

先是安装了 ubuntu,有时候 你不得不承认 ubuntu 的兼容性是真的好。所有的驱动都认出来了。为什么这么说呢?因为我后面是想尝试用 omv 来处理,毕竟我还要管理 docker 之类的,用这个会更方便。而且我还特地买了1T 的硬盘。

结果 。。。omv 的安装在第一步就卡住了,网卡认不出。eth 不行,wifi 也不行。。从网上下了驱动。也没认出来。一下子傻眼了,在写的时候 ,我已经在下载 unraid 了。如果它能够跑出来,那我后面就改用 unraid 了。反正 unraid 也不贵。

说白了,就是给这个5-1找点事情做做

如何自动更新 SSL 证书?

 听起来好象没问题,因为 acme.sh 就是在做这样的事情,但事实上呢,经常失败。经常有客户跑过来说,怎么网站打不开了?所以找了个检查 SSL 证书的命令,然后放在 console 里跑一下,如果证书在7天内过期就使用 acme.sh 脚本运行一次。

检测的 ssl 命令是:echo -n Q | openssl s_client -servername blog.neatcn.com -connect blog.neatcn.com:443  | openssl x509 -dates -noout,可以看到类似这样的结果 :
 
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = yzhan.com
verify return:1
DONE
notBefore=Mar 25 05:19:28 2023 GMT
notAfter=Jun 23 05:19:27 2023 GMT
 
简点区分一下数据,notAfter=后的时间就是过期时间,在 laravel 下面就方便了。 Carbon类比较一下(PHP 的 DateTime 类也能比较)。laravel 10开始,new Process()还能多进程。写个简单的脚本,加到 crontab,就完事了。