自动安装ESLint格式化代码
刚刚开始书写vue的代码,发现了一个很头疼的问题,在创建VUE项目时选择了ESLine来规范代码书写风格,并且在VS Code中安装了vetur插件可以格式化vue代码,然后在编写代码的时候发现,只要使用VS code自带的格式化代码快捷键就会发生很恐怖的事情,所有的格式都会改变的不符合ESLint中的标准规范.控制台一片红.
注意:即使我一个一个手动的去改成标准的,手一习惯性动作.所有的代码又不标准了.
这我怎么能忍.在网上找了半天尝试了下,找到了办法,愉快的解决了.
主要思路在这个博客中学习的.
但是最后一步的时候碰到问题了,可能我采用VS Code的原因,怎么都无法理解
在vscode的文件-首选项-设置里,右侧配置里添加如下代码即可
里面的这句话,直到发现在自己项目的根目录出现了一个.vscode -> settings.json
文件才猜测是这里面,复制后成功了,尝试了几下,体验简直不要太爽.这里分享下
安装vetur插件
使VS code可格式化vue代码
安装ESLint插件
javascript代码ESLint规范检测工具
安装Prettier - Code formatter插件
只关注格式化,并不具有eslint检查语法等能力,只关心格式化文件(最大长度、混合标签和空格、引用样式等),包括JavaScript · Flow · TypeScript · CSS · SCSS · Less · JSX · Vue · GraphQL · JSON · Markdown
安装Manta’s Stylus Supremacy插件
格式化stylus的插件(不用就不装),因为vetur会把css格式化有分号 、大括号的那种,此插件会把css格式化成stylus风格。
最重要的地方-设置个性化配置
在项目的根目录下有一个.vscode
目录中的settings.json
文件(没有自己新建个试试)
在这个文件中将下面的代码复制进去,然后就可以去vue代码中按ctrl + s
去体验飞一般的感觉了
{
// vscode默认启用了根据文件类型自动设置tabsize的选项
"editor.detectIndentation": false,
// 重新设定tabsize
"editor.tabSize": 2,
// #每次保存的时候自动格式化
"editor.formatOnSave": true,
// #每次保存的时候将代码按eslint格式进行修复
"eslint.autoFixOnSave": true,
// 添加 vue 支持
"eslint.validate": [
"javascript",
"javascriptreact",
{
"language": "vue",
"autoFix": true
}
],
// #让prettier使用eslint的代码格式进行校验
"prettier.eslintIntegration": true,
// #去掉代码结尾的分号
"prettier.semi": false,
// #使用带引号替代双引号
"prettier.singleQuote": true,
// #让函数(名)和后面的括号之间加个空格
"javascript.format.insertSpaceBeforeFunctionParenthesis": true,
// #这个按用户自身习惯选择
"vetur.format.defaultFormatter.html": "js-beautify-html",
// #让vue中的js按编辑器自带的ts格式进行格式化
"vetur.format.defaultFormatter.js": "vscode-typescript",
"vetur.format.defaultFormatterOptions": {
"js-beautify-html": {
"wrap_attributes": "force-aligned"
// #vue组件中html代码格式化样式
}
},
// 格式化stylus, 需安装Manta's Stylus Supremacy插件
"stylusSupremacy.insertColons": false, // 是否插入冒号
"stylusSupremacy.insertSemicolons": false, // 是否插入分好
"stylusSupremacy.insertBraces": false, // 是否插入大括号
"stylusSupremacy.insertNewLineAroundImports": false, // import之后是否换行
"stylusSupremacy.insertNewLineAroundBlocks": false, // 两个选择器中是否换行
"vetur.validation.template": false //关闭vetur标签闭合检查(用于解决iview标签报错)
}