在跑一些旧的项目时,因为历史原因,部分 eslint 或者 ts 配置没有配置好,导致编辑器会标红,例如下图:
可以看到,第一条是 ts 报的警告,cannot find module xxx or its corresponding type declarations.
这是由于 ts 在处理模块的时候无法通过别名识别到具体的文件路径。如果你的项目没有使用到 ts 的话,那这段错误也不会有,直接跳过当前段落。
对于 ts 的警告,我们可以在 tsconfig.json
文件里面配置 paths
选项即可。
{
"compilerOptions": {
"paths": {
"@/*": ["./src/*]
}
}
}
解决 eslint 报错
有两种解决方法,可以按实际需要选择。
- 关闭规则
很多初学者最烦 eslint 的规则,虽然项目要求开启了 eslint ,但是只要一言不合就直接 × 掉对应的规则,眼不见心不烦。这种虽然可行,但是没有形成良好的开发习惯,只会逃避问题,而不是解决问题。如果你是这样的人,那么可以在 .eslintrc.js
这样配置:
moduule.exports = {
rules: {
"import/extensions": "off",
},
};
- 识别路径
使用 eslint-import-resolver-alias
插件,配置到 .eslintrc.js
文件中,即可解决路径识别问题。
module.exports = {
settings: {
"import/resolver": {
alias: {
map: [["@", "./src"]],
extensions: [".js", ".jsx", ".ts", ".tsx", ".json"],
},
},
},
};
这样做的好处是不仅可以移除 ide 的 eslint 报错,也可以识别到路径,直接通过鼠标点击跳转到具体的文件。