我用Typescript做了一个简单的Node/Express应用,eslint给予了我错误
Missing file extension "ts" for "./lib/env" import/extensions
这是我的.eslintrc文件
{
"extends": [
"airbnb",
"plugin:@typescript-eslint/recommended",
"prettier",
"prettier/react",
"plugin:import/errors",
"plugin:import/warnings",
"plugin:import/typescript"
],
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint", "prettier", "import"],
"settings": {
"import/extensions": [".js", ".jsx", ".ts", ".tsx"],
"import/parsers": {
"@typescript-eslint/parser": [".ts", ".tsx"]
},
"import/resolver": {
"typescript": {
"directory": "./tsconfig.json"
},
"node": {
"extensions": [".js", ".jsx", ".ts", ".tsx"]
}
}
},
"rules": {
"@typescript-eslint/indent": [2, 2],
"no-console": "off",
"import/no-unresolved": [2, { "commonjs": true, "amd": true }],
"import/named": 2,
"import/namespace": 2,
"import/default": 2,
"import/export": 2
}
}
我已经安装了eslint-plugin-import & eslint-import-resolver-typescript。我不知道为什么,我得到了那个错误。
9条答案
按热度按时间pgccezyw1#
将以下代码添加到
rules
:airbnb
ESLint config导致问题。ewm0tg9j2#
我知道这已经很晚了,但如果你正在扩展Airbnb规则,你可以使用eslint-config-airbnb-typescript。请参阅项目页面以获取最新说明。以下是截至2022年3月的要点:
安装
ESLint配置文件
using React - add 'airbnb-typescript' after 'airbnb'
没有React -在'airbnb-base'之后添加'airbnb-typescript/base'
将parserOptions.project设置为
tsconfig.json
的路径**注意:在2021年8月之前,您还需要执行以下任务。**这些说明仅供参考。您不需要再执行此操作。
首先卸载旧的并添加新的:
然后更新你的ESlint配置,从“extends”部分删除旧的Airbnb并添加新的:
xkrw2x1b3#
这是一个奇怪的解决方案,但我已经添加了
"": "never"
,它对我有效(https://github.com/import-js/eslint-plugin-import/issues/1573)。n1bvdmb64#
向**.eslintrc**添加导入扩展和解析器很重要
进一步添加规则:
wmomyfyw5#
通过捆绑我在互联网上找到的所有答案,我得到了这个工作:
这是我的最终结果:
我使用的是react native btw。如果你使用的是不同的东西,只要删除react相关的就足够了
gmxoilav6#
如果你和我一样,试图配置babel、旧版Javascript和新的typescript文件,并试图在
*.ts
上启用无扩展导入,那么我就会遇到这个ESLint问题(我也在下面找到了解决方案):除了
rules
配置:您还需要在
.eslintrc.js
中添加一个设置项:祝你好运!
pxq42qpu7#
下面是一个类似的错误,可能会由于导入中的“~”而引发:
缺少“~/path/”eslintimport/extensions的文件扩展名\
方案一:
此问题可以通过如下配置tsconfig.json和.eslintrc.js来解决。
tsconfig.json
.eslintrc.js
方案二:
如果错误仍然存在,很可能是您在根目录(tsconfig.json和.eslintrc.js所在目录)以外的其他目录打开了项目,因此打开根目录以外的目录会混淆eslint正确识别路径,从而抛出上述错误。
pxy2qtax8#
在我的例子中,我正在扩展monorepo ESLint配置,并且在我禁用该规则的包之后加载了
airbnb-base
。所以我必须最后加载它。lf5gs5x29#
即使
.eslintrc
中的所有typescript属性都存在,我的问题仍然存在。.eslintrc
我可以通过将此添加到我的webpack配置来解决这个问题:
webpack.config.json
来源:https://smartdevpreneur.com/the-three-easiest-ways-to-fix-the-missing-file-extension-tsx-error/