尽pipe文件存在,但是没有find“模块”

我下载angular启动器 ,运行应用程序,运行良好。 现在,我在“src / app / services / people.service.ts”中添加了一个新的文件“people.service.ts”。

当我尝试导入它时,出现错误:

找不到模块:错误:无法parsing'/ path-to-project / angular-starter-master / src / app'中的'services / people.service'

这是我用来导入它的代码(在src / app / app.module.ts中):

import {PeopleService} from 'services/people.service'; 

我确信没有错别字,因为IDE可以识别它。 整个项目中没有任何TypeScript错误。 文件“services / people.service”包含一个名为PeopleService的类。

任何帮助将深受赞赏。 请让我知道,如果你需要任何额外的信息。

问题是你正在使用绝对path而不是相对path。 将导入更改为以下内容:

 import {PeopleService} from './services/people.service'; 

TypeScript 2.0+

在TypeScript 2.0中,你可以在tsconfig.json中添加一个baseUrl属性:

 { "compilerOptions": { "baseUrl": "." // etc... }, // etc... } 

然后,您可以像导入基本目录一样导入所有内容:

 import {PeopleService} from 'services/people.service'; 

最重要的是,你可以添加一个path属性,它允许你匹配一个模式,然后映射出来。 例如:

 { "compilerOptions": { "baseUrl": ".", "paths": { "services/*": [ "services/validation/*" ] } // etc... }, // etc... } 

这将允许你从任何地方像这样导入它:

 import {PeopleService} from 'services/people.service'; 

从那里,你将需要configuration你用来支持这些导入名称的模块加载器。 现在TypeScript编译器似乎不会自动映射出来。

你可以在github的问题上阅读更多。 还有一个rootDirs属性,在使用多个项目时非常有用。

要么

您可以直接将绝对path更改为相对path,如下所示:

 import {PeopleService} from './services/people.service';