就是我用vscode 的setting.json保存格式化,已经配置不用分号了,但是最后保存还是有分号,而且这个分号在这个尴尬的位置,我也不懂为什么
{
"editor.formatOnSave": true,
"diffEditor.ignoreTrimWhitespace": false,
"code-runner.runInTerminal": true,
"timeline.excludeSources": ["timeline.localHistory"],
"vetur.completion.scaffoldSnippetSources": {
"workspace": "💼",
"user": "🗒️",
"vetur": "✌"
},
"editor.formatOnPaste": true,
"editor.formatOnType": true,
"editor.detectIndentation": false,
"editor.tabSize": 2,
//eslint
"eslint.codeAction.showDocumentation": {
"enable": true
},
"eslint.validate": ["javascript", "html", "vue"],
"eslint.format.enable": true,
"eslint.nodeEnv": "",
"[typescript]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
},
//vetur
"vetur.format.options.tabSize": 2,
"vetur.format.defaultFormatter.html": "js-beautify-html",
"vetur.format.defaultFormatter.js": "prettier",
// "vetur.format.defaultFormatter.html": "prettier",
"vetur.format.defaultFormatterOptions": {
// vue组件中html代码格式化样式
"js-beautify-html": {
// 对属性进行换行。
// - auto: 仅在超出行长度时才对属性进行换行。
// - force: 对除第一个属性外的其他每个属性进行换行。
// - force-aligned: 对除第一个属性外的其他每个属性进行换行,并保持对齐。
// - force-expand-multiline: 对每个属性进行换行。
// - aligned-multiple: 当超出折行长度时,将属性进行垂直对齐。
"wrap_attributes": "force-expand-multiline"
},
"prettier": {
"semi": false,
"singleQuote": true,
"bracketSpacing": true,
"trailingComma": "none"
}
},
"vetur.validation.template": false,
//prettier
// 去掉代码结尾的分号
// "prettier.semi": false,
"prettier.tabWidth": 1,
// 使用单引号替代双引号
"prettier.singleQuote": true,
//file
"[vue]": {
"editor.defaultFormatter": "octref.vetur"
// octref.vetur
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
},
"javascript.format.insertSpaceBeforeFunctionParenthesis": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
}
module.exports = {
root: true,
env: {
node: true
},
extends: [
'plugin:vue/essential',
'@vue/standard',
'@vue/typescript/recommended'
],
parserOptions: {
ecmaVersion: 2020
},
rules: {
'@typescript-eslint/ban-types': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/member-delimiter-style': ['error',
{
multiline: {
delimiter: 'none'
},
singleline: {
delimiter: 'comma'
}
}],
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-var-requires': 'off',
'@typescript-eslint/no-extra-semi': 'off',
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'space-before-function-paren': 0,
'vue/array-bracket-spacing': 'error',
'vue/arrow-spacing': 'error',
'vue/block-spacing': 'error',
'vue/brace-style': 'error',
'vue/camelcase': 'error',
'vue/comma-dangle': ['error', {
arrays: 'never',
objects: 'never',
imports: 'never',
exports: 'never',
functions: 'never'
}],
'comma-dangle': ['error', {
arrays: 'never',
objects: 'never',
imports: 'never',
exports: 'never',
functions: 'never'
}],
'vue/component-name-in-template-casing': ['error', 'kebab-case'],
'vue/eqeqeq': 'error',
'vue/key-spacing': 'error',
'vue/match-component-file-name': 'error',
'vue/object-curly-spacing': 'error',
semi: ['error', 'never'],
'arrow-parens': ['error', 'always']
},
overrides: [
{
files: [
'**/__tests__/*.{j,t}s?(x)',
'**/tests/unit/**/*.spec.{j,t}s?(x)'
],
env: {
jest: true
}
}
]
}