結論
TypeScriptのdefaultFormatterを明示的に指定したら解決した。
settings.json
{
"prettier.prettierPath": "./node_modules/prettier",
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
状況
OS: WSL (Ubuntu-20.04)
NestJS: 10.1.8
NestJSで遊んでいるときVSCodeの>Format Document
が機能しなくなった。
右下にはこんなマーク↓とエラーが。
VSCodeの出力 > Prettier
["INFO" - 6:10:13 PM] Attempted to load Prettier module from /home/me/.config/yarn/global/node_modules/prettier
["ERROR" - 6:10:13 PM] Failed to load module. If you have prettier or plugins referenced in package.json, ensure you have run `npm install`
["ERROR" - 6:10:13 PM] Cannot load Prettier version from package.json
Error: Cannot load Prettier version from package.json
at t.ModuleResolver.loadPrettierVersionFromPackageJson (/home/me/.vscode-server/extensions/esbenp.prettier-vscode-9.19.0/dist/extension.js:1:4185)
作業フォルダ外のprettierを見に行っているようなので、ワークスペースの設定に
settings.json
{
"prettier.prettierPath": "./node_modules/prettier"
}
を追加。
JSONファイルのフォーマットが効くようになったのは確認できたが、
TypeScriptファイルのみまだフォーマットされないようだった。(エラーの表示は消えている。)
いろいろ試してみた結果、
settings.json
{
"prettier.prettierPath": "./node_modules/prettier",
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
これで動いてくれた。良かった。
おわり
-
原因の解決ではないけど一応メモ。
- デフォルトですべてのファイルがフォーマット対象になるわけでは無いのかな
-
あんまり関係ないけどVSCodeの
settings.json
をsetting.json
って書いてしまったときに軽いアラート出してほしい(1敗)