npm i -g eslint-config-standard@4.0.0
npm i -g babel-eslint@10.1.0
npm i -g eslint@5.16.0
npm i -g eslint-config-standard12.0.0
npm i -g eslint-plugin-es@1.4.1
npm i -g eslint-plugin-html@5.0.5
npm i -g eslint-plugin-import@2.25.4
npm i -g eslint-plugin-node@8.0.1
npm i -g eslint-plugin-promise@4.3.1
npm i -g eslint-plugin-standard@4.1.0
npm i -g eslint-plugin-vue@5.2.3
测试node版本 14.14.0
项目根目录放置文件 .eslintrc.js
module.exports = {
root: true,
env: {
node: true
},
'extends': [
'plugin:vue/strongly-recommended',
'@vue/standard'
],
rules: {
"space-before-function-paren": 0,
'no-console': 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'generator-star-spacing': 'off',
'no-mixed-operators': 0,
'vue/max-attributes-per-line': [
'warn',
{
'singleline': 10,
'multiline': {
'max': 1,
'allowFirstLine': true
}
}
],
'vue/attribute-hyphenation': 0,
'vue/html-self-closing': 0,
'vue/component-name-in-template-casing': 0,
'vue/html-closing-bracket-spacing': 0,
'vue/singleline-html-element-content-newline': 0,
'vue/no-unused-components': 0,
'vue/multiline-html-element-content-newline': 0,
'vue/no-use-v-if-with-v-for': 0,
'vue/html-closing-bracket-newline': 0,
'vue/no-parsing-error': 0,
'no-tabs': 'off',
'quotes': [
2,
'single',
{
'avoidEscape': true,
'allowTemplateLiterals': true
}
],
'semi': [
2,
'never',
{
'beforeStatementContinuationChars': 'never'
}
],
'no-delete-var': 2,
'prefer-const': [
0,
{
'ignoreReadBeforeAssign': false
}
],
'template-curly-spacing': 'off',
'indent': 'off'
},
parserOptions: {
parser: 'babel-eslint'
},
overrides: [
{
files: [
'**/__tests__/*.{j,t}s?(x)',
'**/tests/unit/**/*.spec.{j,t}s?(x)'
],
env: {
jest: true
}
}
]
}
vscode setting.json
{
"explorer.confirmDelete": false,
"security.workspace.trust.untrustedFiles": "open",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.validate": [
"javascript",
"vue",
"html"
],
"explorer.confirmDragAndDrop": false,
"editor.detectIndentation": false,
"editor.tabSize": 2,
"vetur.format.defaultFormatter.js": "none",
"workbench.colorTheme": "Monokai",
"editor.quickSuggestions": {
"strings": true
},
"workbench.tree.indent": 16,
"eslint.alwaysShowStatus": true,
"eslint.codeAction.disableRuleComment": {
"location": "separateLine"
}
}