ESlint:是用來統一JavaScript代碼風格的工具,不包含css、html等。javascript
近來研究前端,而後一直在百度上找VScode格式化(ESlint)的插件,結果找了半天都不靠譜。目前沒有一個能夠格式化html、css、符合ESlint的js、vue的插件,因此本身東拼西湊加實踐找到解決方法。css
1)ESlint:javascript代碼檢測工具,能夠配置每次保存時格式化js,但每次保存只格式化一點點,你得連續按住Ctrl+S好幾回,才格式化好,自行體會~~
2)vetur:能夠格式化html、標準css(有分號 、大括號的那種)、標準js(有分號 、雙引號的那種)、vue文件,
可是!格式化的標準js文件不符合ESlint規範,會給你加上雙引號、分號等,像這樣html
3)Prettier - Code formatter:只關注格式化,並不具備eslint檢查語法等能力,只關心格式化文件(最大長度、混合標籤和空格、引用樣式等),包括JavaScript · Flow · TypeScript · CSS · SCSS · Less · JSX · Vue · GraphQL · JSON · Markdown
4)Manta's Stylus Supremacy: 格式化stylus的插件(不用就不裝),由於vetur會把css格式化有分號 、大括號的那種,此插件會把css格式化成stylus風格,像這樣前端
File->Preference->Settings【也能夠快捷鍵 ctr + ,(window系統) 直接打開】vue
如今看到的是界面配置模式,點擊右上角的大括號(以下圖),能夠打開 settings.json 文件。java
粘貼如下代碼,保存便可react
把代碼貢獻一下:json
{ // vscode默認啓用了根據文件類型自動設置tabsize的選項 "editor.detectIndentation": false, // 從新設定tabsize "editor.tabSize": 4, // #值設置爲true時,每次保存的時候自動格式化;值設置爲false時,代碼格式化請按shift+alt+F "editor.formatOnSave": false, // #每次保存的時候將代碼按eslint格式進行修復 "eslint.autoFixOnSave": true, // 添加 vue 支持 "eslint.validate": [ "javascript", "javascriptreact", { "language": "vue", "autoFix": true } ], // #讓prettier使用eslint的代碼格式進行校驗 "prettier.eslintIntegration": true, // #去掉代碼結尾的分號 "prettier.semi": false, // #使用帶引號替代雙引號 "prettier.singleQuote": true, "prettier.tabWidth": 4, // #讓函數(名)和後面的括號之間加個空格 "javascript.format.insertSpaceBeforeFunctionParenthesis": true, // #這個按用戶自身習慣選擇 "vetur.format.defaultFormatter.html": "js-beautify-html", // #讓vue中的js按"prettier"格式進行格式化 "vetur.format.defaultFormatter.js": "prettier", "vetur.format.defaultFormatterOptions": { "js-beautify-html": { // #vue組件中html代碼格式化樣式 "wrap_attributes": "force-aligned", //也能夠設置爲「auto」,效果會不同 "wrap_line_length": 200, "end_with_newline": false, "semi": false, "singleQuote": true }, "prettier": { "semi": false, "singleQuote": true } }, "[jsonc]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, // 格式化stylus, 需安裝Manta's Stylus Supremacy插件 "stylusSupremacy.insertColons": false, // 是否插入冒號 "stylusSupremacy.insertSemicolons": false, // 是否插入分號 "stylusSupremacy.insertBraces": false, // 是否插入大括號 "stylusSupremacy.insertNewLineAroundImports": false, // import以後是否換行 "stylusSupremacy.insertNewLineAroundBlocks": false, "prettier.useTabs": true, "files.autoSave": "off", "explorer.confirmDelete": false, "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "diffEditor.ignoreTrimWhitespace": false // 兩個選擇器中是否換行 }
今後直接 Ctrl+S 就能一鍵格式化了。函數