起因
nodejs的某个版本,需要在.zshrc里增加一行
1 | export NODE_OPTIONS=--openssl-legacy-provider |
否则启动 vue2 的 dev server 的 npm 命令会出错。
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
code: 'ERR_OSSL_EVP_UNSUPPORTED'
VUE3 Vite 似乎不存在这个问题。
但是这句不能被 Visual Studio Code 很好的识别,每次启动Visual Studio Code 都会报错。
Unable to resolve your shell environment: Unexpected exit code from spawned shell (code 9, signal null)
这个错误对话框只能点击差号关掉,默认按钮是 restart, 稍有不慎误点start就重启又来一次。
解决办法
VS Code 启动时会增加一些 VSCODE_ 的环境变量,例如:
VSCODE_CODE_CACHE_PATH
VSCODE_CWD
VSCODE_IPC_HOOK
VSCODE_NLS_CONFIG
VSCODE_PID
因此通过在 .zshrc 中判断是否有这些变量,有则不设置 NODE 用的变量,无则设置来避免 VSCode 解析出错。
1 | if ! printenv | grep VSCODE_; then |