vue專案中使用eslint
1、安裝
@vue/cli-plugin-eslint
babel-eslint
eslint
eslint-plugin-vue
2.專案根目錄新增.eslintrc.js
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// add your custom rules here
// it is base on https://github.com/vuejs/eslint-config-vue
rules: {
'vue/max-attributes-per-line': [
2,
{
singleline: 10,
multiline: {
max: 1,
allowFirstLine: false
}
}
],
'vue/html-self-closing': ['error', {
'html': {
'void': 'never',
'normal': 'never',
'component': 'never'
},
'svg': 'always',
'math': 'always'
}],
'vue/singleline-html-element-content-newline': 'off',
'vue/multiline-html-element-content-newline': 'off',
'vue/name-property-casing': ['error', 'PascalCase'],
'vue/no-v-html': 'off',
'accessor-pairs': 2,
'arrow-spacing': [
2,
{
before: true,
after: true
}
],
'block-spacing': [2, 'always'],
'brace-style': [
2,
'1tbs',
{
allowSingleLine: true
}
],
camelcase: [
0,
{
properties: 'always'
}
],
'comma-dangle': [2, 'never'],
'comma-spacing': [
2,
{
before: false,
after: true
}
],
'comma-style': [2, 'last'],
'constructor-super': 2,
curly: [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
eqeqeq: ['error', 'always', { null: 'ignore' }],
'generator-star-spacing': [
2,
{
before: true,
after: true
}
],
'handle-callback-err': [2, '^(err|error)$'],
indent: [
2,
2,
{
SwitchCase: 1
}
],
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [
2,
{
beforeColon: false,
afterColon: true
}
],
'keyword-spacing': [
2,
{
before: true,
after: true
}
],
'new-cap': [
2,
{
newIsCap: true,
capIsNew: false
}
],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [
2,
{
allowLoop: false,
allowSwitch: false
}
],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [
2,
{
max: 1
}
],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [
2,
{
defaultAssignment: false
}
],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [
2,
{
vars: 'all',
args: 'none'
}
],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [
2,
{
initialized: 'never'
}
],
'operator-linebreak': [
2,
'after',
{
overrides: {
'?': 'before',
':': 'before'
}
}
],
'padded-blocks': [2, 'never'],
quotes: [
2,
'single',
{
avoidEscape: true,
allowTemplateLiterals: true
}
],
semi: [2, 'never'],
'semi-spacing': [
2,
{
before: false,
after: true
}
],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': 0,
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [
2,
{
words: true,
nonwords: false
}
],
'spaced-comment': [
2,
'always',
{
markers: [
'global',
'globals',
'eslint',
'eslint-disable',
'*package',
'!',
','
]
}
],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
yoda: [2, 'never'],
'prefer-const': 0,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'object-curly-spacing': [
2,
'always',
{
objectsInObjects: false
}
],
'array-bracket-spacing': [2, 'never']
}
}
這些是目前我的專案中使用到的配置項,需要別的配置項可以去eslint官網查詢
3、vscode設定的setting.json加入程式碼
{
"workbench.iconTheme": "vscode-icons-mac",
"workbench.colorTheme": "Dracula",
"files.exclude": {
"**/.DS_Store": true,
"**/.git": true,
"**/.hg": true,
"**/.svn": true,
"**/bower_components": true,
"**/CVS": true,
"**/tmp": true
},
"workbench.activityBar.visible": true,
"editor.minimap.enabled": false,
"editor.tabSize": 2,
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
// "**/node_modules/**": true,
"**/tmp/**": true,
"**/bower_components/**": true,
"**/dist/**": true
},
"[javascript]": {
"editor.defaultFormatter": "HookyQR.beautify"
},
"diffEditor.ignoreTrimWhitespace": false,
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"files.associations": {
"*.cjson": "jsonc",
"*.wxss": "css",
"*.wxs": "javascript",
"*.js": "javascriptreact"
},
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[vue]": {
"editor.defaultFormatter": "octref.vetur"
},
"[html]": {
"editor.defaultFormatter": "vscode.html-language-features"
},
"git.confirmSync": false,
"git.enableSmartCommit": true,
"emmet.includeLanguages": {
"wxml": "html"
},
"minapp-vscode.disableAutoConfig": true,
"css.fileExtensions": [
"css",
"scss"
],
"fileheader.customMade": {
"Author": "zxc",
"Date": "", // 設定後預設設定檔案生成時間
"LastEditTime": "", // 設定後,儲存檔案更改預設更新最後編輯時間
"LastEditors": "zxc", // 設定後,儲存檔案更改預設更新最後編輯人
"Description": "",
},
"fileheader.cursorMode": {
"Author": "zxc",
"Date": "", // 設定後預設設定檔案生成時間
"func": "",
},
// "editor.fontLigatures": null,
"search.followSymlinks": false,
// "workbench.settings.editor": "json",
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"[less]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"tslint.autoFixOnSave": true,
"timeline.excludeSources": [
"git-history"
],
"gitlens.hovers.currentLine.over": "line",
"tabnine.experimentalAutoImports": true,
"settingsSync.ignoredSettings": [],
// "eslint.autoFixOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"files.autoSave": "off",
"window.zoomLevel": 0,
"cssrem.rootFontSize": 100,
"html.format.contentUnformatted": "",
"vetur.format.defaultFormatterOptions": {
"validation": {
"template": false
},
"js-beautify-html": {
"wrap_attributes": "force-expand-multiline"
},
"prettyhtml": {
"printWidth": 100,
"singleQuote": false,
"wrapAttributes": false,
"sortAttributes": false
}
},
"vetur.validation.template": false,
"todo-tree.tree.showScanModeButton": false,
"eslint.codeAction.showDocumentation": {
"enable": true
},
"search.exclude": {
"**/node_modules": false
}
}
就可以使用拉
相關文章
- 專案中如何配合VScode使用EslintVSCodeEsLint
- 【vue系列】 vue2.0 專案配置 ESLintVueEsLint
- Vue專案使用eslint + prettier規範程式碼風格VueEsLint
- Vue3專案配置 eslint + prettierVueEsLint
- VUE使用ESLintVueEsLint
- Vue專案之使用EditorConfig, Eslint和Prettier實現程式碼規範VueEsLint
- 如何在react專案中配置ESlintReactEsLint
- vue-cli3專案配置eslint程式碼規範VueEsLint
- vue專案中如何使用this.$confirmVue
- bing Map 在vue專案中的使用Vue
- 在 Ember 專案中使用ESLint (VScode編輯器下)EsLintVSCode
- 在vue專案中優雅的使用SvgVueSVG
- Vue2/3 專案中的 ESLint + Prettier 程式碼檢測格式化風格指南VueEsLint
- 使用vue-cli搭建VUE專案Vue
- vue專案中使用svgVueSVG
- 使用 Docker 部署 vue 專案DockerVue
- 使用webpack搭建vue專案WebVue
- 使用 pnpm 建立 vue 專案NPMVue
- 如何在vue專案中優雅的使用SVGVueSVG
- ESLint + lint-staged 禁用老專案中的es6EsLint
- NodeJs專案開發中應用ESLint程式碼規範NodeJSEsLint
- 一步一步,統一專案中的編碼規範(vue, vscode, vetur, prettier, eslint)VueVSCodeEsLint
- Vue 專案中接入sentryVue
- 【 Vue 】 Vue 使用腳手架建立專案Vue
- 在vue專案中使用elementUIVueUI
- Vue開源專案使用探索Vue
- Vue專案使用pdf.jsVueJS
- vue專案使用element元件庫Vue元件
- vue 專案中ivew按需引入Vue
- Vue專案中應用TypeScriptVueTypeScript
- 如何在現有的Vue專案中嵌入 Blazor專案?VueBlazor
- VS Code書寫vue專案配置 eslint+prettier 統一程式碼風格VueEsLint
- vue專案中獲取外部js,並使用其中方法VueJS
- vue2中如何關閉eslint校驗VueEsLint
- 如何在 Vue 專案中使用 echartsVueEcharts
- 使用腳手架搭建VUE專案Vue
- vue.js 使用NPM建立專案Vue.jsNPM
- 在vue專案中使用骨架屏Vue