web-dev-qa-db-ja.com

TypeScriptでのeslintの使用-モジュールへのパスを解決できません

私のファイルにこのインポートがありますapp.spec.ts

import app from './app';

このTypeScriptエラーの原因

2:17  error  Unable to resolve path to module './app'  import/no-unresolved

./ app.tsは存在しますが、.tsファイルを.jsファイルにコンパイルしていません。 .tsファイルを.jsにコンパイルするとすぐに、エラーはなくなります。

ただし、eslintはTypeScriptで動作することが想定されているため、.jsではなく.tsを使用してモジュールを解決する必要があります。

TypeScript情報をeslint構成ファイルにも追加しました:

"parser": "@TypeScript-eslint/parser",
"parserOptions": {
    "project": "./tsconfig.json"
}

.jsではなく.tsを使用してモジュールを解決しようとする方法でeslintを構成するにはどうすればよいですか?

乾杯!

編集#1

の内容 app.ts

import bodyParser from 'body-parser';
import express from 'express';
import graphqlHTTP from 'express-graphql';
import { buildSchema } from 'graphql';

const app = express();

const schema = buildSchema(`
    type Query {
        hello: String
    }
`);
const root = { hello: () => 'Hello world!' };

app.use(bodyParser());
app.use('/graphql', graphqlHTTP({
    schema,
    rootValue: root,
    graphiql: true,
}));

export default app;
59
maximedupre

tseslintの両方が私に怒鳴っていたため、以下を。eslintrcファイルに追加する必要がありました。

{ 
    ...
    "rules": {
        ....
        "import/extensions": "off"
    },
    "settings": {
        ....
        "import/resolver": {
            "node": {
                "extensions": [".js", ".jsx", ".ts", ".tsx"]
            }
        }
    }
}
0
John Galt

誰かが子ディレクトリもサポートする必要がある場合。たとえば、それはサポートします

  1. src/components/input => components/input
  2. src/api/external/request => external/request

    "settings": {
      "import/resolver": {
        "node": {
          "paths": ["src", "src/api"],
          "extensions": [".js", ".jsx", ".ts", ".tsx"]
        }
      }
    }
    

これはeslint ^ 6.1.の実際の例です

0
YÒGÎ