日常的问题也是日常的修行
每天的工作都很忙碌,早就想写一些博客记录一下遇到的问题和感悟,一直由于在有时间的时候选择懒惰和忙碌时候选择放弃,故而很久没有更新了。
生活依然在按部就班地继续,最近遇到了一个小的问题,却让我明白:很多看起来微小的事儿,也能最终影响很多。
大概从半个月前,我发现一些怪事儿:
- 每次在终端使用我写的一个命令去安装node依赖总是用的一个特别高的版本21.xx。
- 某个半年多之前写的unit test一直会报错,而其他人电脑上不会遇到。
针对第一个问题,我在.zshrc里面的命令定义如下:
alias rnpmi='npm cache clean --force && rm -rf ./node_modules/ && nvm use && npm i'
在项目的根目录下已经有.nvmrc文件,所以当执行rnpmi命令的时候,会先强制清空npm cache,然后删除node_modules,最后用.nvmrc指定的node版本去安装node依赖。
而实际执行之后的输出是:
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@hc/xenial-venues-inventory@1.0.0',
npm WARN EBADENGINE required: { node: '18.13.0', npm: '8.19.3' },
npm WARN EBADENGINE current: { node: 'v21.1.0', npm: '10.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@hc/xenial-data-contracts@3.4.17',
npm WARN EBADENGINE required: { node: '12.14.1', npm: '6.13.4' },
npm WARN EBADENGINE current: { node: 'v21.1.0', npm: '10.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@hc/xenial-redis-client@2.3.14',
npm WARN EBADENGINE required: { node: '>=8.11.2 <19' },
npm WARN EBADENGINE current: { node: 'v21.1.0', npm: '10.2.0' }
npm WARN EBADENGINE }
可以看出,使用的node版本是v21.1.0,一直不断有warn出现。
而我不用rnpmi命令,把“nvm use”和“npm i”分别在终端执行,依然是一样的结果。我开始有点郁闷了,到底是哪里出了问题,是终端的问题还是zsh的问题(我默认使用的是zsh)。
为了确定是zsh还是终端有问题,我切回了bash,然后再次分别执行nvm use和npm i,这次终于是使用我想要的node 18.xx了。
由此我初步认为是zsh出了问题,回忆起最近安装了一些python的coda以及其他软件,我重点检查了一下.zshrc文件,并没有发现什么异常。
一时之间我没有了头绪,感觉答案近在咫尺又离我很远。我也不可能因为node版本的问题彻底放弃zsh,改用bash,毕竟我是zsh颜粉。
后面我通过AI的帮助有了一个新的想法,可以试着重新加载一下.zshrc:
source ~/.zshrc
然后发现有一个和angular相关的配置有问题,导致整个.zshrc加载配置失败。我于是删除了这一行,之后重新source了一次,然后一切终于恢复正常了。第一个问题和第二个问题都解决了,都是由于本地brew安装的node版本太高,而nvm use没有真正在zsh里面生效。
小结:
1.如果是环境问题还是要尽快解决,保证不会出现大的偏差。
2. 学会借助AI来扩展思路。
总结
以上是生活随笔为你收集整理的日常的问题也是日常的修行的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 文心一言 VS 讯飞星火 VS chat
- 下一篇: 视野修炼-技术周刊第61期