我在我的文件app.spec.ts中有这个导入:
import app from './app';
是什么导致了这个Typescript错误
2:17 error Unable to resolve path to module './app' import/no-unresolved
/应用程序。ts确实存在,但我没有将.ts文件编译成.js文件。一旦我把.ts文件编译成.js文件,错误就消失了。
然而,由于eslint应该与typescript一起工作,它应该用.ts而不是.js来解析模块。
我还在eslint配置文件中添加了typescript信息:
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "./tsconfig.json"
}
我如何配置eslint在这样一种方式,它试图解决模块与.ts而不是.js?
编辑# 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;
当为Angular导入语言环境文件时(例如从'@angular/common/locale /en';),我必须允许使用.mjs扩展名。
以下是我的.eslintrc.json的摘录:
...
"extends": [
...
"plugin:import/recommended",
"plugin:import/typescript",
...
],
"settings": {
"import/resolver": {
"node": {
"extensions": [".ts", ".mjs"]
}
}
},
"rules": {
...
}
...
编辑:
导入HttpCLient或HttpClientModule时,返回错误。
我发现加上。d。Ts扩展到列表修复了这个问题,这也比.mjs更有意义(不再需要)。
这是我新的.eslintrc.json:
...
{
"files": ["*.ts"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": ["tsconfig.json"],
"createDefaultProgram": true
},
"settings": {
"import/resolver": {
"node": {
"extensions": [".ts", ".d.ts"]
}
}
},
"extends": [
"eslint:recommended",
"plugin:import/recommended",
"plugin:import/typescript",
"plugin:@typescript-eslint/recommended",
"plugin:@angular-eslint/recommended",
"plugin:@angular-eslint/ng-cli-compat",
"plugin:@angular-eslint/ng-cli-compat--formatting-add-on",
"plugin:@angular-eslint/template/process-inline-templates"
],
"rules": {
...
}
}
...
(我使用@angular-eslint,但你可能有一个不同的extends列表)