我下载了the angular starter并运行了该应用,但运行良好。现在我在“src / app / services / people.service.ts”中添加了一个新文件“people.service.ts”。
当我尝试导入它时,出现错误:
找不到模块:错误:无法解析'services / people.service' “/路径到项目/角起动主/ SRC /应用”
这是我用来导入它的代码(在src / app / app.module.ts中):
import {PeopleService} from 'services/people.service';
我确信没有拼写错误,因为IDE会识别它。整个项目中没有任何TypeScript错误。文件'services / people.service'确实包含一个名为PeopleService的类。
任何帮助都将深表感谢。如果您需要任何其他信息,请与我们联系。
答案 0 :(得分:3)
问题是您使用的是绝对路径而不是相对路径。将导入更改为以下内容:
import {PeopleService} from './services/people.service';
答案 1 :(得分:0)
TypeScript 2.0 +
在TypeScript 2.0中,您可以在tsconfig.json中添加baseUrl属性:
{
"compilerOptions": {
"baseUrl": "."
// etc...
},
// etc...
}
然后您可以像导入基本目录一样导入所有内容:
import {PeopleService} from 'services/people.service';
除此之外,您还可以添加路径属性,该属性允许您匹配模式然后将其映射出来。例如:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"services/*": [
"services/validation/*"
]
}
// etc...
},
// etc...
}
这将允许您从任何地方导入它:
import {PeopleService} from 'services/people.service';
从那里,您将需要配置您正在使用的任何模块加载器以支持这些导入名称。现在,TypeScript编译器似乎无法自动映射这些。
您可以在github问题中阅读更多相关信息。还有一个rootDirs属性,在使用多个项目时非常有用。
或
您可以直接将绝对路径更改为相对路径,如下所示:
import {PeopleService} from './services/people.service';