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

如何解决 “0308010c:digital envelope routines::unsupported” 的错误

 在使用webpack或者vue-service-cli 的时候,启动时出现:“0308010c:digital envelope routines::unsupported” 的错误,这时候应该怎么解决呢?

 
这个错误的原因可能有两个:
1、 你没有使用 Node JS 的 LTS(长期支持)版本或者是版本太新了。我现在我使用的是 Node 18.0.0。所以我直接npm -g add n ,安装了一个多版本的管理工具,切到16后正常了
2、将 --openssl-legacy-provider 传递给 Webpack 或 CLI 工具 例如,在 React 应用程序中,你可以将 --openssl-legacy-provider 传递给启动脚本,如 "react-scripts --openssl-legacy-provider start"。
 
2是网上查的资料,因为我1就直接解决了,所以2没用上,如果你方法1没有解决问题,那可以尝试方法2

使用UniAPP的data-select弹窗穿透其他组件的问题

虽然已经知道所谓的:在vue中,两个不同的组件,A加了层级或者A的子元素加了层级(大于1),B没加,不管B的子元素层级有多高都不会再A上面显示。

 
但发现不管怎么调整,下拉框还是被其他组件覆盖了,这时候我才注意到有一个sticky的样式。为了让这个元素能够留在顶部,结果就出现了样式穿透的问题了。记录一下下次再遇到的时候,也好加深一下记忆
 
参考:
1、https://www.zhangxinxu.com/wordpress/2018/12/css-position-sticky/ ,杀了个回马枪,还是说说position:sticky吧

multipass 如何更改磁盘

用了multipass后,在mac下建了一虚拟机,用来跑lnmp项目。原来是用valet的,但还是有点不太方便。所以就直接用multipass + zerotier ,然后远程指过来。有点小麻烦,但还能接受。

 
因为我原来也没有多轻松,是用了frp + valet 来做映射,frp是个客户端,得时刻与服务器通讯。
---
闲话不说,multipass在试用的时候,创建的磁盘是5G,结果用两天就满了,一查原来是composer/npm的cache太大了。于是就想着扩容。在没有去官方查资料的时候,先google搜了一下,结果能够搜到的都是改cpu / memory,连改磁盘大小的教程都几乎没有,唯一找到的一篇还是windows下的,说是用了hyper-dev,可以直接在开发工具里调整一下,还是可视化的。
 
网上搜到的改CPU/内存的都是说进入 /var/root/Library/Application Support/multipassd/xxxx.json里直接修改就完事了。事实上在经历过几次更新后,这个json文件也不在原来的位置了,而是在 multipassd/qemu的目录下。
 
但这个配置文件也还是只能改 CPU和内存,所以,改磁盘就改不了。
 
抱着试试看的态度查了下官网,结果发现,原来改这个玩意这么简单:https://multipass.run/docs/modify-an-instance#heading--set-the-cpu-ram-or-disk-of-an-instance,直接两句命令就完事了
multipass set local.primary.disk = 10G
其他可设置的是:cpus / memory 
local是本地,primary是instance的名称。
 
---
查一下官方资料,真是比啥都好,网上那些教程的时效性太短了。

laravel debug模式下抛出异常时隐藏关键字段

laravel在debug模式下抛出异常时,会把当前的环境变量等打印出来,即使是开发机、测试机,其实有时候也不希望将一些关键的变量公开给所有人,比如密码、APPKEY(主要是不少人在上传的时候APPKEY本地和服务器一致),还有各类OSS、微信的appId,secret,token等,所以就需要在抛出异常时隐藏掉。

 
网上查到的是在config/app.php中增加:debug_hide 的数组下标,对应的数据是_ENV,_SERVER,其实就是把遍历这些全局变量,对指定的KEY进行隐藏。但偶尔也查到有debug_blacklist。于是全文搜索了一下,发现框架里是:foreach([config('app.debug_hide'),config('app.debug_blacklist')]),看来这是一个历史 遗留问题。
 
知道怎么写之后就方便了。例如:
'debug_hide'=>[
    '_ENV' => ['APP_KEY']
]
,随便抛一个异常可以看到 ,输出的APP_KEY的地方,已经不再是标准值了,而是一堆***,关键变量其实有很多,如果一个个写,感觉有点累,再加上,它不支持 * 的模拟判断,比如*KEY*,则完全无效。于是偷了个懒:
'debug_hide'=>[
    '_ENV' => array_filter(array_keys($_ENV),fn($v)=> Str::contains(strtolower($v), ['oss_', 'db_', 'cookie', 'key','secret', 'password', 'aliyun']) ),
]
既然都在debug_mode下了。也不在乎这点性能了。。
tips:
1、不能用str($v)->contains,因为str这个helper函数,居然还调用了env的class,而在刚加载config文件时。env的类还没有加载进来。
2、strtolower,是因为Str::contains不能忽略大小写。虽然.env都是标准的大写,但你不能保证其他人有没有写小写(又不能抽他们)。所以先tolower一下
 
解决!
 

感觉现在可充电的5号、7号锂电池还只是个玩具

标题中出现的【5号、7号锂电池】,现在在PDD或者淘宝上也是铺天盖地了,上去看看平均一节电池也差不多在10~20元的区间(看店家怎么个下刀了)

 
买它的原因还是因为,苹果旧版的键盘、鼠标太耗电了,有时候我就在想,是不是应该卖掉换新的。毕竟新的都是可充电的,再这样耗下去,我换电池的钱都快可以买新键盘了。
 
原来我是一直用IBM的一个移动键盘,但是在我当时的带鱼屏摔下来把小红点砸坏后,好象就有点不听使唤了。当然也能用,就是偶尔会出现乱码的情况,这时候就必须重启重连才能恢复正常。在这点上,确实不如苹果原生的支持的好。
 
话题扯的有点远,回到这个电池上,目前这些电池几乎都是在上面开了一个typec的口,意味着typec就能够直接充电,充电的时候会亮个灯,但缺点是,我永远不知道这个电什么时候能够充满,比如就象我现在,充了一晚上,灯还是亮着。
 
然后还有个缺点是,你永远不知道这个电能用多久,我放在键盘里,一直显示是100%,开始我感觉很耐用,可是几天后,突然键盘提醒我快没电了,看了一下变成40%。这个100%~40%,毫无症兆,中午变40%,然后晚上就0%了。实话实说,感觉他没有达到标称的3330mah。不过我也没有专业设备来测试,只能凭眼睛看了。
 
主要是让我不太舒服的是电量的突然崩完。这个有点不太方便。目前还在坚持着用,3330mAh的,还不如我10年前买的eneloop,他们的使用时间感觉上还是差不多,但那个我用了10年了。。。
 
---
再用段时间看看是否继续使用,或者换成eneloop,又或者直接换成可充电的鼠标键盘(其实并不是很喜欢,因为成本太高了,哪天充不进电,一个鼠标就废了,而我的 m557,130多,因为微动开关的问题,2年换一个没那么心疼,万一来个充电鼠标因为微动开关换,那就严重提升成本了。),有点怀念15年前的雷柏,又好又爽,电池也能用半年。只是最近买了几个,不是飘的厉害就是卡顿,在mac下的兼容还是有问题。