在lint-staged中加入ts检查

在 lint-staged 中加入 ts 检查

之前在项目中只添加了 eslint 检查和 prettier 检查,在使用 ts 开发后,发现有时候会将不符合 ts 校验的代码提交上去,于是就打算在提交时针对部分文件做 ts 检查。

起初是在 package.json 中直接配置,发现运行时无法导入 tsconfig,导致部分声明没有生效。于是将 lint-staged 配置放在单独的配置文件中管理:

1
2
3
4
5
6
7
module.exports = {
"**/*.{js,vue,ts?(x)}": [
() => "vue-tsc -p tsconfig.json --noEmit",
"eslint --cache",
],
"**/*.{js,vue,scss,ts,json}": "prettier --check",
};

配置完后发现虽然能够对文件进行检测了,但不止暂存区的代码被检测了,非暂存区的代码也会检测到,无论怎么修改配置都无法解决。

最后想到 ts 的语法校验和 eslint 或者 prettier 不同,他需要对文件依赖的模块也进行检测,才能判断最终的代码是否正确,所以其实 ts 是没办法做到完全 lint-staged 的检测的。


在lint-staged中加入ts检查
https://www.wobushi.top/2022/在lint-staged中加入ts检查/
作者
Pride Su
发布于
2022年8月23日
许可协议