富途所有项目共享的ESLint规则,与JavaScript编码规范对应。
1 安装依赖:
npm install eslint eslint-config-futu --save-dev
2 在项目web根目录上层新建.eslintrc.js文件
module.exports = {
root: true,
extends: 'eslint-config-futu',
env: {
browser: true,
node: true,
amd: true
},
parserOptions: {
ecmaVersion: 7,
sourceType: 'module'
},
rules:{
// 如果项目有特殊需求,可在此覆盖
}
};
- 安装依赖
npm install eslint typescript eslint-config-futu --save-dev
- 在项目web根目录上层新建.eslintrc.js文件
module.exports = {
root: true,
extends: 'eslint-config-futu/typescript', // 这里要使用'eslint-config-futu/typescript'配置
env: {
browser: true,
node: true,
amd: true
},
parserOptions: {
ecmaVersion: 7,
sourceType: 'module',
// recommend to use another config file like tsconfig.eslint.json and extends tsconfig.json in it.
// because you may be need to lint test/**/*.test.ts but no need to emit to js.
// @see https://github.com/typescript-eslint/typescript-eslint/issues/890
project: './tsconfig.json'
},
rules:{
// 如果项目有特殊需求,可在此覆盖
}
}
不要全局安装ESLint工具,不要全局安装ESLint工具,不要全局安装ESLint工具。
设置(Preference) - 语言框架(Languages & Frameworks) - JavaScript - 质量工具(Code Quality Tools) - ESLint
勾上 启用(Enable),Node interpreter写 Node 的路径,一般会自动检测到,如果检测不到需要自己选一下。
ESLint package选择项目中的node_modules/eslint
,注意是项目中的,不能是全局的。剩下配置保留现状即可。
如果没有安装Package Control的可以先安装一下,说明见这里。https://packagecontrol.io/installation
然后安装SublimeLinter和SublimeLinter-contrib-eslint即可。
如果使用Package Control拉不出插件列表,可以设置一下Channel:打开命令输入框,找到Package Control: Add Channel,输入 https://git.oschina.net/mugood/PackageControl/raw/master/channel_v3.json 即可。
安装ESLint插件,启用即可。
apm install linter
apm install linter-ui-default
apm install linter-eslint
启用这三个插件便可
因为在项目中会通过npm在项目中安装eslint-config-futu
,然后基于这个公共规则配置文件来使用ESLint。
然而ESLint有一个“Bug”,全局ESLint无法找到项目中的eslint-config-futu
,所以无法应用公共规则配置文件。
所以只能使用项目中安装的eslint
依赖。按上方编辑器的配置说明,编辑器均会使用项目中的eslint
依赖。
如果不在编辑器中使用,想在命令行使用,可以有两种方法:
- 使用
./node_modules/.bin/eslint
,或者将这个命令写入npm scripts
。在npm scripts
中可以直接写eslint
,会默认从./node_modules/.bin
下查找eslint
命令。 - 全局安装
eslint-cli
这个第三方库,然后使用eslint
命令。
- 增加 prefer-const 检查
- 增加 no-var 检查
- 支持typescript文件校验
- 增加 @typescript-eslint/no-var-requires 检查
- 增加 @typescript-eslint/no-explicit-any 检查
- 增加 @typescript-eslint/ban-ts-comment 检查
- 修正 tag 1.0.2
- 修正
no-use-before-define
规则,只做变量的检查,函数与类不做检查
- 允许 console no-console
- 增加no-self-assign检查
- 增加no-tabs检查
- 增加valid-jsdoc检查
- 增加no-unused-vars检查
- 增加no-use-before-define检查
- 增加no-multi-assign检查
- 增加no-invalid-this检查
- 增加new-cap检查
- 增加max-params检查
- 增加no-useless-return检查
- 增加no-nested-ternary检查
- 增加no-multi-spaces检查
- 增加guard-for-in检查
- 初始化规则