0.2.1 • Published 5 years ago

tslint-config-alloy v0.2.1

Weekly downloads
60
License
MIT
Repository
github
Last release
5 years ago

AlloyTeam TSLint 规则

一套完整的 TSLint 规则,以及对每条规则的释义。

使用方法

安装:

npm install --save-dev tslint typescript tslint-config-alloy

在你的项目根目录下创建 tslint.json,并将以下内容复制到文件中:

{
    "extends": ["tslint-config-alloy"],
    "linterOptions": {
        "exclude": ["**/node_modules/**"]
    },
    "rules": {
        // 这里填入你的项目需要的个性化配置,比如:
        //
        // // 一个缩进必须用两个空格替代
        // // @has-fixer 可自动修复
        // // @prettier 可交由 prettier 控制
        // "indent": [true, "spaces", 2]
    }
}

规则列表

TypeScript 相关

与 TypeScript 特性相关的规则。

功能性检查

找出可能的错误,以及可能会产生 bug 的编码习惯。

可维护性

增强代码可维护性的规则。

代码风格

与代码风格相关的规则。

CLI 中运行

使用项目依赖中的 tslint 脚本,指定项目路径,检查所有 ts 后缀的文件:

./node_modules/.bin/tslint --project . ./**/*.ts

tslint 作为 npm scripts 运行:

  1. package.jsonscripts 字段添加一条 "tslint": "tslint --project . ./**/*.ts"
  2. 运行 npm run tslint

与 VSCode 集成

  1. 在 VSCode 中安装 tslint 插件
  2. 按下 Cmd + ,Ctrl + ,,打开设置
  3. tslint.autoFixOnSave,配置为 true

与 Prettier 集成

Prettier 是一个专注于对代码风格进行统一格式化的工具,由于与 TSLint 的部分配置冲突,故需要使用 tslint-config-prettier 禁用掉 TSLint 的部分规则。

首先安装 prettier 和 tslint-config-prettier:

npm install --save-dev prettier tslint-config-prettier

然后为 tslint.configextends 添加 tslint-config-prettier 即可:

{
    "extends": ["tslint-config-alloy", "tslint-config-prettier"],
    "linterOptions": {
        "exclude": ["**/node_modules/**"]
    },
    "rules": {
        // 这里填入你的项目需要的个性化配置,比如:
        //
        // // 一个缩进必须用两个空格替代
        // // @has-fixer 可自动修复
        // // @prettier 可交由 prettier 控制
        // "indent": [true, "spaces", 2]
    }
}

如果需要在 VSCode 中实现保存时修复 Prettier 的问题,则可以按照以下步骤配置:

  1. VSCode 安装 Prettier - Code formatter 插件
  2. 按下 Cmd + ,Ctrl + ,,打开设置
  3. tslint.formatOnSave,配置为 true

Prettier 的配置文件 prettier.config.js 可以参考这个:

// prettier.config.js or .prettierrc.js
module.exports = {
    // 一行最多 100 字符
    printWidth: 100,
    // 使用 4 个空格缩进
    tabWidth: 4,
    // 不使用缩进符,而使用空格
    useTabs: false,
    // 行尾需要有分号
    semi: true,
    // 使用单引号
    singleQuote: true,
    // jsx 不使用单引号,而使用双引号
    jsxSingleQuote: false,
    // 末尾不需要逗号
    trailingComma: 'none',
    // 大括号内的首尾需要空格
    bracketSpacing: true,
    // jsx 标签的反尖括号需要换行
    jsxBracketSameLine: false,
    // 箭头函数,只有一个参数的时候,也需要括号
    arrowParens: 'always',
    // 每个文件格式化的范围是文件的全部内容
    rangeStart: 0,
    rangeEnd: Infinity,
    // 不需要写文件开头的 @prettier
    requirePragma: false,
    // 不需要自动在文件开头插入 @prettier
    insertPragma: false,
    // 使用默认的折行标准
    proseWrap: 'preserve',
    // 根据显示样式决定 html 要不要折行
    htmlWhitespaceSensitivity: 'css',
    // 换行符使用 lf
    endOfLine: 'lf'
};