日常的問題也是日常的修行

每天的工作都很忙碌,早就想寫一些博客記錄一下遇到的問題和感悟,一直由於在有時間的時候選擇懶惰和忙碌時候選擇放棄,故而很久沒有更新了。
生活依然在按部就班地繼續,最近遇到了一個小的問題,卻讓我明白:很多看起來微小的事兒,也能最終影響很多。
大概從半個月前,我發現一些怪事兒:

  1. 每次在終端使用我寫的一個命令去安裝node依賴總是用的一個特別高的版本21.xx。
  2. 某個半年多之前寫的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: '@xx/[email protected]',
npm WARN EBADENGINE   required: { node: '18.14.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: '@xxx/[email protected]',
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: '@xx/[email protected]',
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來擴展思路。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章