700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > vs code保存自动格式化代码及eslint/tslint修复-太爽(丝滑般的感觉)

vs code保存自动格式化代码及eslint/tslint修复-太爽(丝滑般的感觉)

时间:2023-04-08 14:15:35

相关推荐

vs code保存自动格式化代码及eslint/tslint修复-太爽(丝滑般的感觉)

现在没有前后端分离的开发模式都不好意思跟同行交流。前后端分离的好处这里就不再赘述了。

本司开发的系统是基于Angular(ng zorro),TypeScript,后台采用Spring Boot。写前端本人独爱vs code,配合vs code的一些插件,写代码简直那个爽(丝滑般的感觉)。

vs code保存自动格式化代码及eslint/tslint修复,是不是能找到宇宙最强大,最好用的IDE Visual Studio的感觉?

下面我分享一下我的vs code配置。

一、vs code版本Version: 1.45.0 (user setup)

二、安装插件

需要安装一下插件:

ESLint

TSLint

Prettier - Code formatter

Manta's Stylus Supremacy

language-stylus

Vetur

三、配置prettier

Prettier是一个能够完全统一你和同事代码风格的利器,并且统一的代码风格能保证代码的可读性。

在项目根目录增加文件.prettierrc

{

"printWidth":120,

"semi":false,

"singleQuote":true

}

四、配置tsconfig

tsconfig.json:

{

"compileOnSave":false,

"compilerOptions":{

//"baseUrl":"./",

//添加路径相关

"baseUrl":"src",

"paths":{

"@app/*":["app/*"]

},

"outDir":"./dist/out-tsc",

"sourceMap":true,

"declaration":false,

"downlevelIteration":true,

"experimentalDecorators":true,

"module":"esnext",

"moduleResolution":"node",

"importHelpers":true,

"target":"es",

"lib":[

"es",

"dom"

]

},

"angularCompilerOptions":{

"fullTemplateTypeCheck":true,

"strictInjectionParameters":true

}

}

五、配置tslint

因为使用是typescript,所以我当然要用tslint。

添加文件tslint.json:

{

"extends":"tslint:recommended",

"rules":{

"array-type":false,

"arrow-parens":false,

"deprecation":{

"severity":"warning"

},

"component-class-suffix":true,

"contextual-lifecycle":true,

"directive-class-suffix":true,

"directive-selector":[

true,

"attribute",

"app",

"camelCase"

],

"component-selector":[

true,

"element",

"app",

"kebab-case"

],

"import-blacklist":[

true,

"rxjs/Rx"

],

"interface-name":false,

"max-classes-per-file":false,

"max-line-length":[

true,

140

],

"member-access":false,

"member-ordering":[

true,

{

"order":[

"static-field",

"instance-field",

"static-method",

"instance-method"

]

}

],

"no-consecutive-blank-lines":false,

"no-console":[

true,

"debug",

"info",

"time",

"timeEnd",

"trace"

],

"no-empty":false,

"no-inferrable-types":[

true,

"ignore-params"

],

"no-non-null-assertion":false,

"no-redundant-jsdoc":true,

"no-switch-case-fall-through":true,

"no-use-before-declare":true,

"no-var-requires":false,

"object-literal-key-quotes":[

true,

"as-needed"

],

"object-literal-sort-keys":false,

"ordered-imports":false,

"quotemark":[

true,

"single"

],

"trailing-comma":false,

"no-conflicting-lifecycle":true,

"no-host-metadata-property":true,

"no-input-rename":true,

"no-inputs-metadata-property":true,

"no-output-native":true,

"no-output-on-prefix":true,

"no-output-rename":true,

"no-outputs-metadata-property":true,

"template-banana-in-box":true,

"template-no-negated-async":true,

"use-lifecycle-interface":true,

"use-pipe-transform-interface":true

},

"rulesDirectory":[

"codelyzer"

]

}

vs全局设置

快捷键:ctrl+,

然后点右上角进入settings.json文本编辑模式

settings.json

{

"editor.wordWrap":"on",

"update.enableWindowsBackgroundUpdates":false,

"update.mode":"none",

"update.showReleaseNotes":false,

"window.zoomLevel":0,

"typescript.updateImportsOnFileMove.enabled":"always",

"explorer.confirmDelete":false,

//#值设置为true时,每次保存的时候自动格式化;值设置为false时,代码格式化请按shift+alt+F

"editor.formatOnSave":true,

//设置tab的缩进为2

"editor.tabSize":2,

//#每次保存的时候将代码按eslint和tslint格式进行修复

"editor.codeActionsOnSave":{

"source.fixAll.eslint":true,

"eslint.autoFixOnSave":false,

"source.fixAll.tslint":true

},

"eslint.run":"onSave",

//#让prettier使用eslint的代码格式进行校验

//vscode更新后已经统一使用editor.codeActionsOnsave

//#代码结尾加分号为好

"prettier.semi":true,

//#使用带引号替代双引号

"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'sStylusSupremacy插件

"stylusSupremacy.insertColons":false,//是否插入冒号

"stylusSupremacy.insertSemicolons":false,//是否插入分号

"stylusSupremacy.insertBraces":false,//是否插入大括号

"stylusSupremacy.insertNewLineAroundImports":false,//import之后是否换行

"stylusSupremacy.insertNewLineAroundBlocks":false,

"prettier.useTabs":true,

"files.autoSave":"off",

"[javascript]":{

"editor.defaultFormatter":"esbenp.prettier-vscode"

},

"[json]":{

"editor.defaultFormatter":"esbenp.prettier-vscode"

},

"diffEditor.ignoreTrimWhitespace":false,

"[html]":{

"editor.defaultFormatter":"esbenp.prettier-vscode"

},//两个选择器中是否换行

//在vue文件里设置html关联

"emmet.syntaxProfiles":{

"vue-html":"html",

"vue":"html"

},

"explorer.confirmDragAndDrop":false,

"terminal.integrated.rendererType":"dom",

"files.associations":{

"*.ejs":"html",

"*.vue":"html"

},

"emmet.triggerExpansionOnTab":true,

"emmet.includeLanguages":{

"vue-html":"html",

"vue":"html"

},

"editor.accessibilitySupport":"on",

"[typescript]":{

"editor.defaultFormatter":"esbenp.prettier-vscode"

}

}

六、最后效果

保存代码自动修复并格式代码,也不用每次想格式化代码要手动按

shift+alt+f

转载:/Article/762.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。