欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Sublime Eslint代码规范检查 插件

程序员文章站 2022-05-29 07:52:07
...

需要用到npm,如果没装过npm,请看我的另一篇文章
http://blog.csdn.net/u014027680/article/details/79237586

Eslint安装

这个是nodejs环境下的eslint工具,没有这个的话sublime就是通过调用这个来进行eslint检查的

$ npm install eslint -g
# 或者
$ cnpm install eslint -g

Sublime配置

(要配置eslint的小伙伴们,应该都是知道sublime插件安装方法的,我就不重复了)

1.安装 SublimeLinter 插件 和 ESlint 插件

首选项 –> Packages Settings –> SublimeLinter –> Settings
Sublime Eslint代码规范检查 插件
将下面代码复制到上面图上所示的红框里

{
    "user": {
        "debug": false,
        "delay": 0.25,
        "error_color": "D02000",
        "gutter_theme": "Packages/SublimeLinter/gutter-themes/Default/Default.gutter-theme",
        "gutter_theme_excludes": [],
        "lint_mode": "background",
        "linters": {
        /*********************这里是关键*********************/
            "eslint": {
                "@disable": false,
                "args": [],
                "excludes": []
            },
        /**************************************************/
        },
        "mark_style": "outline",
        "no_column_highlights_line": false,
        "passive_warnings": false,
        /*********************这里是关键*********************/
        "paths": {
            "linux": [],
            "osx": [],
            "windows": [
                "E:\\nodejs\\node_global"
            ]
        },
        /**************************************************/
        "python_paths": {
            "linux": [],
            "osx": [],
            "windows": []
        },
        "rc_search_limit": 3,
        "shell_timeout": 10,
        "show_errors_on_save": false,
        "show_marks_in_minimap": true,
        "syntax_map": {
            "html (django)": "html",
            "html (rails)": "html",
            "html 5": "html",
            "javascript (babel)": "javascript",
            "magicpython": "python",
            "php": "html",
            "python django": "python",
            "pythonimproved": "python"
        },
        "tooltip_fontsize": "1rem",
        "tooltip_theme": "Packages/SublimeLinter/tooltip-themes/Default/Default.tooltip-theme",
        "tooltip_theme_excludes": [],
        "tooltips": false,
        "use_current_shell_path": false,
        "warning_color": "DDB700",
        "wrap_find": true
    }
}

“linters” 里的代码一般在安装eslint插件的时候就会自动添加。
“paths” 里主要填写本地eslint的路径,即npm安装的eslint路径。根据你的系统选择,Linux环境下写在linux里,Windows环境下写在windows里。路径只需要写到eslint所在文件夹即可。

2.SublimeLinter配置
选项 类型 默认 备注
debug boolean false 如果为true,SublimeLinter会将检查结果打印到Sublime的控制台中
lint_mode string background 设置当前的lint模式,可选值有background(后台实时)、load/save、save only(仅保存时候)和manual
path array 设置额外的路径用于搜索可执行文件。例如,设置nodejs的位置
show_errors_on_save boolean false 当你保存文件的时候会弹出一个显示检查结果的快速面板
linters object 分别设置每个linter插件

更多配置可查看官方文档http://www.sublimelinter.com/en/latest/linter_settings.html

Eslint 配置文件

1. 在项目跟目录创建( .eslintrc.js )文件

Sublime Eslint代码规范检查 插件
然后将下面这串代码复制到这个文件里

module.exports = {
    "env": {
        "browser": true,
        "node": true,
        "es6": true, // 这个设置会自动启用 ES6 语法
    },
    "extends": "eslint:recommended",
    "parserOptions": {
        "ecmaVersion": 6, // 设置为 3, 5 (默认), 6、7 或 8 指定你想要使用的 ECMAScript 版本。你也可以指定为 2015(同 6),2016(同 7),或 2017(同 8)使用年份命名
        "sourceType": "module", // 设置为 "script" (默认) 或 "module"(如果你的代码是 ECMAScript 模块)
        "ecmaFeatures": { // 这是个对象,表示你想使用的额外的语言特性:
            "jsx": true, // 启用 JSX
        }
    },
    // 规则配置
    "rules": {
        "indent": [
            "error",
            "tab"
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "quotes": [
            "error",
            "double"
        ],
        "semi": [
            "error",
            "always"
        ],
        //
        //
        // 可能的错误
        // 这些规则与 JavaScript 代码中可能的语法错误或逻辑错误有关
        //
        // 禁止 for 循环出现方向错误的循环,比如 for (i = 0; i < 10; i--)
        'for-direction': 2,
        // getter 必须有返回值,并且禁止返回空,比如 return;
        'getter-return': [
            'error',
            {
                allowImplicit: false
            }
        ],
        // 禁止在 if, for, while 里使用赋值语句,除非这个赋值语句被括号包起来了
        'no-cond-assign': [
            'error',
            'except-parens'
        ],
        // 禁止使用 console
        // @off console 的使用很常见
        'no-console': 0,
        // 禁止将常量作为 if, for, while 里的测试条件,比如 if (true), for (;;),除非循环内部有 break 语句
        'no-constant-condition': [
            'error',
            {
                checkLoops: false
            }
        ],
        // 禁止在正则表达式中出现 Ctrl 键的 ASCII 表示,即禁止使用 /\x1f/
        // 开启此规则,因为字符串中一般不会出现 Ctrl 键,所以一旦出现了,可能是一个代码错误
        'no-control-regex': 2,
        // @fixable 禁止使用 debugger
        'no-debugger': 2,
        // 禁止在函数参数中出现重复名称的参数
        'no-dupe-args': 2,
        // 禁止在对象字面量中出现重复名称的键名
        'no-dupe-keys': 2,
        //禁止多余的冒号
        "no-extra-semi": 2,
        //禁止switch穿透
        "no-fallthrough": 1,
        //禁止省略浮点数中的0 .5 3.
        "no-floating-decimal": 2,
        //禁止重复的函数声明
        "no-func-assign": 2,
        //禁止使用八进制数字
        "no-octal": 2,
        //禁止使用八进制转义序列
        "no-octal-escape": 2,
        //不能比较自身
        "no-self-compare": 2,
        //不能有声明后未被使用的变量或参数
        "no-unused-vars": [2, {"vars": "all", "args": "none"}],
        //一行结束后面不要有空格
        "no-trailing-spaces": 1,
        //不能有未定义的变量
        "no-undef": 1,
        //函数调用时 函数名与()之间不能有空格
        "no-spaced-func": 2,
        //禁止混用tab和空格
        "no-mixed-spaces-and-tabs": [2, false],
        //换行风格
        "linebreak-style": [0, "windows"],
        //空行最多不能超过2行
        "no-multiple-empty-lines": [1, {"max": 2}],
        //缩进风格
        "indent": [2, 4],
        //引号类型 `` "" ''
        "quotes": [1, "single"],
        //关键字后面是否要空一格
        "space-after-keywords": [0, "always"],
        //不以新行开始的块{前面要不要有空格
        "space-before-blocks": [1, "always"],
        //函数定义时括号前面要不要有空格
        "space-before-function-paren": [1, "always"],
        //一元运算符的前/后要不要加空格
        "space-unary-ops": [1, { "words": true, "nonwords": false }],
        //使用严格模式
        "strict": 2,
        //this别名
        "consistent-this": [2, "self"],
        //switch语句最后必须有default
        "default-case": 2,
    }
};

这串代码是对你 eslint 检查规则的配置,这是我自己配的代码规范,当然你也可以自己配。
上面这些代码已经涵盖了日常使用的一些,还有更多规则还请自行查看官方文档 http://eslint.cn/docs/rules/

最后

实现效果如下
Sublime Eslint代码规范检查 插件

SublimeLinter不只是支持ESlint,还有很多,比如php代码规范检查
Sublime Eslint代码规范检查 插件

SublimeLinter 还有很多功效,在这里就不细讲了,有待各位挖掘哈。