以管理员身份运行VS Code时Prettier配置文件报错求助
问题详情
仅在管理员身份启动VS Code时,使用Alt+Shift+F格式化文件会触发Prettier错误:左下角Prettier图标变红,错误日志显示无法找到一段shell脚本模块,提示无效的Prettier配置文件。已确认依赖栈文件存在、全局安装过Prettier、当前仓库无本地配置文件,但问题未解决。错误日志:
["INFO" - 5:19:55 PM] Formatting file:///c%3A/Users/MyUserName/Desktop/Code/diary-passle/Notes/W6/delete.json ["ERROR" - 5:19:55 PM] Invalid prettier configuration file detected. ["ERROR" - 5:19:55 PM] Cannot find module 'basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") case `uname` in *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; esac if [ -x "$basedir/node" ]; then exec "$basedir/node" "$basedir/node_modules/prettier/bin-prettier.js" "$@" else exec node "$basedir/node_modules/prettier/bin-prettier.js" "$@" fi' Require stack: - c:\Users\AdminUserName\.vscode\extensions\esbenp.prettier-vscode-9.10.4\node_modules\prettier\index.js - c:\Users\AdminUserName\.vscode\extensions\esbenp.prettier-vscode-9.10.4\dist\extension.js - c:\Program Files (x86)\Microsoft VS Code\resources\app\out\vs\loader.js - c:\Program Files (x86)\Microsoft VS Code\resources\app\out\bootstrap-amd.js - c:\Program Files (x86)\Microsoft VS Code\resources\app\out\bootstrap-fork.js ...
解决步骤
指定Prettier使用项目本地版本
打开VS Code设置(Ctrl+,),搜索Prettier: Path,将值设置为项目根目录下的./node_modules/prettier/bin/prettier.cjs(根据项目实际结构调整路径)。管理员身份下全局环境变量与普通用户不一致,指定本地版本可规避全局路径冲突。验证管理员账户的Node.js环境
以管理员身份打开CMD,执行node -v和npm -v确认环境正常。若命令无法识别,将Node.js安装目录(如C:\Program Files\nodejs)添加到系统环境变量Path中。重装Prettier扩展
卸载当前Prettier扩展,以管理员身份重启VS Code后重新安装最新版本。扩展在管理员账户下可能存在权限或文件损坏问题,重装可修复此类问题。禁用Prettier配置自动搜索
在VS Code设置中搜索Prettier: Disable Configuration Search并勾选。这会让Prettier跳过全局/本地配置文件扫描,避免因管理员身份下的路径扫描错误导致的配置识别问题。指定全局Prettier路径
管理员身份下执行npm list -g prettier获取全局安装路径,将VS Code的Prettier: Path设置为该路径下的bin/prettier.cjs(例如C:\Users\AdminUserName\AppData\Roaming\npm\node_modules\prettier\bin\prettier.cjs)。
内容的提问来源于stack exchange,提问作者JimmyTheCode

