更新Angular项目后Sublime Text中TypeScript Linting失效求助
我来帮你排查下这个问题!这种只有单个项目linter失效的情况,大概率是依赖更新后项目配置或版本兼容性出了问题,给你几个具体的排查和解决步骤:
检查lint配置文件是否完好
先确认项目根目录下的tslint.json(Angular4默认用TSLint)有没有被更新过程覆盖或者损坏。有时候npm安装新依赖时,会自动生成默认配置文件,替换掉你原来的自定义规则。你可以对比其他正常Angular项目的配置,重点看有没有启用no-undef这类检查未定义变量的规则,如果缺失就补回去。确认依赖版本与编辑器插件兼容
更新包后,本地的typescript、tslint版本可能和Sublime里的TypeScript/TSLint插件版本不匹配,导致插件无法正常解析项目的lint规则。- 在项目根目录运行
npm list tslint typescript,查看本地安装的版本号。 - 打开Sublime的插件列表,找到你用的TSLint/TypeScript插件,查看它支持的依赖版本范围。
- 如果版本不兼容,要么降级项目里的依赖(比如运行
npm install tslint@x.x.x typescript@x.x.x --save-dev指定兼容版本),要么把Sublime的对应插件更新到最新版。
- 在项目根目录运行
检查项目级Sublime配置
看看项目的.sublime-project文件有没有特殊配置,比如之前指定了旧版本的TypeScript SDK路径,更新后这个路径已经失效。打开配置文件,找到settings部分,确认typescript_tsdk是否指向项目本地的node_modules/typescript/lib,如果路径不对,改成正确的相对路径(比如"./node_modules/typescript/lib")。重启编辑器并重新加载项目
有时候依赖更新后,Sublime的插件没有自动读取新的依赖信息,简单重启编辑器,或者通过Project -> Reload Project重新加载当前项目,就能让插件重新识别项目的依赖和配置。重新安装lint核心依赖
如果npm更新过程中有包安装失败,可能会导致tslint或typescript依赖缺失。你可以运行npm install tslint typescript --save-dev重新安装这两个核心包,安装完成后再检查linter是否恢复正常。
内容的提问来源于stack exchange,提问作者user3255061

