We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TOC]
本文推荐使用 VSCode 编辑器,所有步骤均以 Mac 下 VSCode 为例。
安装好编辑器后进行插件安装,shift + command + x 打开 Extensions 面板,搜索安装以下插件。
shift + command + x
Preferences --> Settings --> open settings.json --> User settings 新增下面的配置。
Preferences --> Settings --> open settings.json --> User settings
{ // ... "eslint.validate": ["javascript", "vue", "html", "javascriptreact"], // 关闭自带的 javascript 校验 "javascript.format.enable": false, //保存时eslint自动修复错误 "eslint.autoFixOnSave": true }
项目根目录下新建 .eslintrc.js 文件
.eslintrc.js
module.exports = { parser: 'babel-eslint', extends: ['airbnb', 'prettier', 'plugin:compat/recommended'], env: { browser: true, node: true, es6: true }, globals: { APP_TYPE: true, }, plugins: ['html'], rules: { 'react/jsx-filename-extension': [1, { extensions: ['.js'] }], 'react/jsx-wrap-multilines': 0, 'react/prop-types': 0, 'react/forbid-prop-types': 0, 'react/jsx-one-expression-per-line': 0, // jsx 统一 tab 4 spaces 'react/jsx-indent': [0, 'tab'], 'react/jsx-indent-props': [0, 'tab'], 'import/no-unresolved': [2, { ignore: ['^@/', '^umi/'] }], 'import/no-extraneous-dependencies': [2, { optionalDependencies: true }], 'jsx-a11y/no-noninteractive-element-interactions': 0, 'jsx-a11y/click-events-have-key-events': 0, 'jsx-a11y/no-static-element-interactions': 0, 'jsx-a11y/anchor-is-valid': 0, // 禁用分号 'semi': [2, 'never'], // 禁止尾随逗号 'comma-dangle': [2, 'never'], // 强制使用 tab 缩进 'indent': [2, 'tab'] }, settings: { polyfills: ['fetch', 'promises', 'url'], }, };
// https://eslint.org/docs/user-guide/configuring module.exports = { root: true, parserOptions: { parser: "babel-eslint" }, env: { browser: true }, globals: { scHybridBridge: true }, // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. extends: ["plugin:vue/essential", "airbnb-base"], // required to lint *.vue files plugins: ["vue"], // add your custom rules here rules: { // Ensure imports point to a file/module that can be resolved "import/extensions": [2, { ignore: [".js", ".json"] }], "import/no-unresolved": 0, // disallow reassignment of function parameters // disallow parameter object manipulation except for specific exclusions "no-param-reassign": [ "error", { props: true, ignorePropertyModificationsFor: [ "state", // for vuex state "acc", // for reduce accumulators "e" // for e.returnvalue ] } ], // allow optionalDependencies "import/no-extraneous-dependencies": [ "error", { optionalDependencies: ["test/unit/index.js"] } ], // 禁用分号 semi: [2, "never"], // 禁止尾随逗号 "comma-dangle": [2, "never"], // 强制使用 tab 缩进 indent: [2, "tab"], // 关闭禁用 tab "no-tabs": 0, // 单行最大长度 200 字符串 "max-len": [2, { code: 200 }], "no-use-before-define": [2, { functions: false, classes: true }], // 关闭禁用 ++ 或 -- "no-plusplus": [0], // 关闭使用字面量对象 "object-shorthand": 0, // 关闭函数表达式必须有名字 "func-names": 0 } };
在项目根目录下新建 .eslintignore
.eslintignore
/script /functions /mode_modules /dist /.vscode /.temp /.circleci *.ejs .* *.json
【注意】项目需要先安装eslint依赖,npm install eslint -D,也可以全局安装sudo npm install eslint -g。
eslint
npm install eslint -D
sudo npm install eslint -g
Git hooks: Git 提供的提交工作流钩子,可在该钩子中执行ESLint代码校验。
Git hooks
ESLint
集成Git hooks有两种方案,一种利用原生的Git hooks事件,Git钩子。
第二种为pre-commit解决方案,具体操作如下:
pre-commit
npm install pre-commit -D
{ "name": "changshu-smt-web", "version": "1.0.0", "description": "", "author": "xxx", "private": true, "scripts": { // ... // 配置以下三个指令 "lint": "eslint --fix --ext .js,.vue src", "precommit": "npm run lint", "precommit-msg": "echo 'Pre-commit checks...'" }, "pre-commit": [ "precommit-msg", "precommit" ], "dependencies": { ... }, "devDependencies": { "pre-commit": "^1.2.2", ... } ... }
lint
root = true [*] charset = utf-8 indent_style = tab indent_size = 4 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true
{ "singleQuote": true, "trailingComma": "none", "printWidth": 100, "semi": false, "tabWidth": 4, "useTabs": true, "overrides": [ { "files": ".prettierrc", "options": { "parser": "json" } } ] }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
ESLint、Prettier 详细接入指南
[TOC]
环境安装
编辑器安装
本文推荐使用 VSCode 编辑器,所有步骤均以 Mac 下 VSCode 为例。
插件安装
安装好编辑器后进行插件安装,
shift + command + x
打开 Extensions 面板,搜索安装以下插件。编辑器配置
User settings
Preferences --> Settings --> open settings.json --> User settings
新增下面的配置。ESLint 配置文件
项目根目录下新建
.eslintrc.js
文件React 推荐配置
Vue 推荐配置
忽略文件配置
在项目根目录下新建
.eslintignore
【注意】项目需要先安装
eslint
依赖,npm install eslint -D
,也可以全局安装sudo npm install eslint -g
。Git hooks 集成 ESLint
Git hooks
: Git 提供的提交工作流钩子,可在该钩子中执行ESLint
代码校验。集成
Git hooks
有两种方案,一种利用原生的Git hooks
事件,Git钩子。第二种为
pre-commit
解决方案,具体操作如下:安装 pre-commit
npm install pre-commit -D
示例 package.json
eslint
执行的校验范围,及修复部分问题lint
命令其他配置文件参考
.editorconfig
.prettierrc
The text was updated successfully, but these errors were encountered: