tl;dr
settings.json
に次の一行を追加する
"prettier.prettierPath": "./node_modules/prettier"
環境
-
Visual Studio Code - Insiders
: 1.79.0-insider (user setup) -
Prettier - Code formatter
: v9.13.0 -
WSL
Ubuntu 22.04 -
asdf
v0.11.3-
nodejs
20.2.0
-
何が起きたのか
上記環境で SvelteKit の開発環境構築を行っていたのだが、Prettierの拡張機能にてエラー。
ログを確認すると
["ERROR" - 9:21:35 PM] Cannot read properties of undefined (reading 'uid')
TypeError: Cannot read properties of undefined (reading 'uid')
at Object.statSync (/home/tellmin/.vscode-server-insiders/bin/f6be5461f8bc69013a605f5baea834651c6589fb/node_modules/graceful-fs/polyfills.js:313:17)
at p (/home/tellmin/.vscode-server-insiders/extensions/esbenp.prettier-vscode-9.13.0/dist/extension.js:1:35221)
at L (/home/tellmin/.vscode-server-insiders/extensions/esbenp.prettier-vscode-9.13.0/dist/extension.js:1:37052)
at /home/tellmin/.vscode-server-insiders/extensions/esbenp.prettier-vscode-9.13.0/dist/extension.js:1:36677
at Function.e.exports [as sync] (/home/tellmin/.vscode-server-insiders/extensions/esbenp.prettier-vscode-9.13.0/dist/extension.js:1:36723)
at t.ModuleResolver.findPkg (/home/tellmin/.vscode-server-insiders/extensions/esbenp.prettier-vscode-9.13.0/dist/extension.js:1:7297)
at t.ModuleResolver.getPrettierInstance (/home/tellmin/.vscode-server-insiders/extensions/esbenp.prettier-vscode-9.13.0/dist/extension.js:1:3251)
at t.default.handleActiveTextEditorChanged (/home/tellmin/.vscode-server-insiders/extensions/esbenp.prettier-vscode-9.13.0/dist/extension.js:1:9781)
ということで、'uid'というプロパティを読み込もうとしたときに、その親オブジェクトがundefinedであることが原因のようです。
調べてみると、prettierのリポジトリに次のようなissueが立てられていました。
そのなかで、次のようなコメントがありました。
Dnouv:
Well, not sure if it is the correct way to resolve but,After changing the prettier path settings to the ones below, it does the trick.
"prettier.prettierPath": "./node_modules/prettier"Thank you!
ということで、settings.json
に次のような設定を追加することで、エラーが解消されました。
"prettier.prettierPath": "./node_modules/prettier"
(Dnouvさんに飛ばしておきました。参考になった方は是非!)
まとめ
悩んでいた時間に対して、あっさりと解決してしまいました。
PrettierプラグインのModuleResolverのエラーのようですが、プロジェクトによっては正しく機能することもあり、詳しい原因まではわからなかったのが心残りです。
さらに情報が分かり次第、追記していきます。
どなたかのお役に立てれば幸いです。