Javascript 获得';未找到模块';尽管文件存在
我下载并运行了这个应用程序,它运行得很好。现在我在“src/app/services/people.service.ts”中添加了一个新文件“people.service.ts” 当我尝试导入它时,我得到一个错误: 未找到模块:错误:无法解析中的“服务/人员.服务” “/path to project/angular starter master/src/app” 这是我用来导入它的代码(在src/app/app.module.ts中): 我确信没有输入错误,因为IDE可以识别它。整个项目中没有任何类型脚本错误。文件“services/people.service”确实包含一个名为PeopleService的类Javascript 获得';未找到模块';尽管文件存在,javascript,node.js,angular,typescript,webpack,Javascript,Node.js,Angular,Typescript,Webpack,我下载并运行了这个应用程序,它运行得很好。现在我在“src/app/services/people.service.ts”中添加了一个新文件“people.service.ts” 当我尝试导入它时,我得到一个错误: 未找到模块:错误:无法解析中的“服务/人员.服务” “/path to project/angular starter master/src/app” 这是我用来导入它的代码(在src/app/app.module.ts中): 我确信没有输入错误,因为IDE可以识别它。整个项目中没有
任何帮助都将不胜感激。如果您需要任何其他信息,请告诉我。问题是您使用的是绝对路径而不是相对路径。将导入更改为以下内容:
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';
除此之外,您还可以添加一个paths属性,它允许您匹配一个模式,然后将其映射出来。例如:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"services/*": [
"services/validation/*"
]
}
// etc...
},
// etc...
}
这将允许您从任何地方导入它,如下所示:
import {PeopleService} from 'services/people.service';
从这里开始,您将需要配置您正在使用的任何模块加载器来支持这些导入名称。现在TypeScript编译器似乎没有自动映射出这些
您可以在github上阅读更多关于这方面的内容。还有一个rootDirs属性,在使用多个项目时非常有用
或
您可以直接将绝对路径更改为相对路径,如下所示:
import {PeopleService} from './services/people.service';
从“/services/people.service”尝试相对路径
代码>@Maximus太棒了!它起作用了!谢谢你快速而出色的回答。请重写它作为一个答案,我会接受它。不客气,作为一个answer@MedetTleukabiluly:D
import {PeopleService} from './services/people.service';