我有一个用 Typescript 制作的简单 Node/Express 应用程序。和 eslint 给我错误
Missing file extension "ts" for "./lib/env" import/extensions
Run Code Online (Sandbox Code Playgroud)
这是我的 .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": …Run Code Online (Sandbox Code Playgroud) 我正在尝试按照文档连接到我的 Firebase 应用程序,但 ESLint 正在抱怨。我已经检查过相关问题,但那里提出的解决方案似乎对我不起作用。我有以下 .eslint.js 文件:
module.exports = {
extends: [
'airbnb-typescript/base',
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:typescript-sort-keys/recommended',
'plugin:import/recommended',
'prettier'
],
parser : '@typescript-eslint/parser',
parserOptions: {
ecmaFeatures: {
modules: true
},
ecmaVersion: 6,
project : './tsconfig.json',
sourceType : 'module'
},
plugins: ['@typescript-eslint', 'typescript-sort-keys', 'sort-keys-fix'],
rules : { ... }
}
Run Code Online (Sandbox Code Playgroud) 好像我在这里遗漏了一些东西,它应该可以正常工作,但eslint不断抛出以下内容:
无法解析模块“反应”的路径。(导入/无未解决)
缺少“反应”的文件扩展名(导入/扩展)
当试图 import React from 'react'
这是一些调试信息:
包.json
{
"dependencies": {},
"devDependencies": {
"react": "16.3.2",
"react-dom": "16.3.2",
"@storybook/addon-actions": "^3.4.2",
"@storybook/addon-links": "^3.4.2",
"@storybook/addons": "^3.4.2",
"@storybook/react": "^3.4.2",
"babel-core": "^6.26.3",
"babel-eslint": "^8.2.3",
"babel-preset-env": "^1.6.1",
"babel-preset-react": "^6.24.1",
"babel-runtime": "^6.26.0",
"eslint": "^4.19.1",
"eslint-config-airbnb": "^16.1.0",
"eslint-config-prettier": "^2.9.0",
"eslint-plugin-import": "^2.11.0",
"eslint-plugin-jsx-a11y": "^6.0.3",
"eslint-plugin-react": "^7.7.0"
}
}
Run Code Online (Sandbox Code Playgroud)
.eslintrc
{
"parser": "babel-eslint",
"extends": ["airbnb", "prettier"],
"env": {
"browser": true,
"node": true,
"es6": true
}
}
Run Code Online (Sandbox Code Playgroud)
.babelrc
{
"presets": ["env", "react"]
}
Run Code Online (Sandbox Code Playgroud)
编辑器:atom v1.26.1
谢谢。
当我从仓库的根文件夹运行eslint时,一切运行正常,没有错误。
但是,当我从子文件夹运行时,会得到大量的导入/无法解析,而从根目录运行时不会发生:
/reporoot/subfolder0/subfolder1/MyFile.js
11:8 error Unable to resolve path to module 'foo' import/no-unresolved
11:8 error Missing file extension for "foo" import/extensions
14:97 error Unable to resolve path to module 'foo' import/no-unresolved
14:97 error Missing file extension for "foo" import/extensions
Run Code Online (Sandbox Code Playgroud)
没关系,我怎么跑。例如:
这将起作用:
cd /reporoot
eslint .
Run Code Online (Sandbox Code Playgroud)
所有这些命令将失败,并显示以上错误:
cd subfolder0
eslint .
Run Code Online (Sandbox Code Playgroud)
要么
eslint subfolder0
Run Code Online (Sandbox Code Playgroud)
要么
eslint /reporoot/subfolder0/subfolder1/MyFile.js
Run Code Online (Sandbox Code Playgroud)
任何想法是什么问题,或有关如何解决的想法?
我阅读了许多资源,包括Using eslint with Typescript-Unable to parse path to module。我一次又一次地遇到同样的错误。
yarn lint
2:24 error Unable to resolve path to module './components/Column' import/no-unresolved
2:24 error Missing file extension for "./components/Column" import/extensions
3:22 error Unable to resolve path to module './components/Card' import/no-unresolved
3:22 error Missing file extension for "./components/Card" import/extensions
4:30 error Missing file extension "ts" for "./components/styles" import/extensions
6:1 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types
8:5 error JSX not allowed in files with extension '.tsx' react/jsx-filename-extension
Run Code Online (Sandbox Code Playgroud)
eslinter.js
module.exports = …Run Code Online (Sandbox Code Playgroud)