VSCodeを起動してJSファイルを保存すると、すべてがめちゃくちゃになることがあります。
VSCodeユーザー設定を変更すると(prettierプラグインに関連する何か|何か(通常はprettier.eslintIntegrationを変更しますが、設定を変更すると解決される可能性があります))保存時に壊れなくなります。
// Part of .eslintrc
{
parser: 'babel-eslint',
extends: ['airbnb', 'prettier'],
plugins: ['prettier'],
rules: {
'prettier/prettier': 'error'
}
...
}
// .prettierrc.yml
printWidth: 80
tabWidth: 4
useTabs: false
semi: false
singleQuote: true
trailingComma: es5
bracketSpacing: true
jsxBracketSameLine: false
arrowParens: always
// Part of my VSCode 'User Settings' file
"javascript.format.enable": false,
"javascript.validate.enable": false,
"prettier.eslintIntegration": true,
"TypeScript.format.enable": false
// Possible related modules from my package.json
"babel-eslint": "^8.2.1",
"eslint": "^4.16.0",
"eslint-config-airbnb": "^16.1.0",
"eslint-config-prettier": "^2.9.0",
"eslint-import-resolver-webpack": "^0.8.4",
"eslint-plugin-import": "^2.8.0",
"eslint-plugin-jsx-a11y": "^6.0.3",
"eslint-plugin-prettier": "^2.6.0",
"eslint-plugin-react": "^7.5.1",
"prettier-eslint": "^8.8.1",
VSCode拡張機能の容疑者:
dbaeumer.vscode-eslint
esbenp.prettier-vscode
他の(デバッグ)情報を提供する必要がある場合は、撮影してください。
ESLintとPrettierをVS Codeで一緒に使用すると、同様の問題が発生しました。何十通りもの方法を試した後、次の設定でうまくいきます。
ESLintとPrettierが私のマシンにグローバルにインストールされています。
私はこれらの拡張機能を使用しています:
https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint
https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode
私の.eslintrc.jsonファイルは次のようになります。
{
"env": {
"browser": true,
"commonjs": true,
"es6": true
},
"extends": ["eslint:recommended"],
"parserOptions": {
"sourceType": "module"
},
"rules": {
"indent": ["error", 4],
"quotes": ["error", "single"],
"semi": ["error", "always"],
"no-console": "off"
}
}
VSコードで、設定>設定>ユーザー設定に移動して、次の行を追加してください:
"editor.formatOnSave": true,
"prettier.tabWidth": 4,
"prettier.eslintIntegration": true,
"prettier.stylelintIntegration": true
私はeslint-config-prettierまたはeslint-plugin-prettierをではなく使用しており、すべてがうまく機能しています。
重要:他の自動フォーマッタ(Prettier以外)拡張機能がインストールされていないことを確認してください。
私にとっての問題は、 Beautify 拡張機能が.js
ファイルがあり、JSX構文の処理方法がわかりませんでした。
解決策は、BeautifyがJavascriptファイルをフォーマットしないようにすることでした。
そのためには、VSCodeのユーザー設定に次の設定を追加する必要があります( ctrl+shift+p Preferences: Open User Settings
):
"beautify.ignore": [
"**/*.js"
]
VSCodeの更新後にこの問題が発生しました。私は以前のバージョンにダウングレードし、Prettierは再び正常に動作しました。
VSCode、Prettier、ESLintを同時に使用すると、競合するルールが異なる場合があります。
VSCodeとESLintで手動でルールを設定しても効果がない場合がありますが、そうするようにしてくださいfirst。また、Prettierの設定は独自の設定ファイル-.prettierrc
などに保存できます。
効果がない場合、その後これらを確認してください:
開発の依存関係では、適切なバージョンがインストールされています[eslint-config-prettier][1]
React/Vue/other-3d-partyツールまたはソースを使用した場合は、NOT @vue/eslint-config-prettier
バージョンを使用していることを確認する必要があります(package.json
およびlock
ファイルを参照)
eslintrc
ファイルにはextends: ['prettier']
があります。前のチェックと同じように、ライブラリに依存するバージョンが指定されていません。
私にとっての問題は、VS CodeにPrettierとJS-CSS-HTML-formatterの両方をインストールしていたことです。 JS-CSS-HTML-formatterをアンインストールするとすぐに、問題は解消しました。