2016-02-17 64 views
0

指定路径,我创建角2应用具有以下结构:Angular 2 Typescript应用程序。编译导入错误。如何从根文件夹

app 
|--components 
| |--folder1 
| |--folder2 
| 
|--services 
| |--folder1 
| |--folder2 
.............. 

,并有每个文件夹中的几个文件。所以当我将服务导入组件时,我需要使用类似这样的东西

import {SomeInfo, SomeInfoService} from './../../services/some/some-data.service'; 

这是导入服务的有效方法,一切正常。但路径很丑。所以我改变路径app/services/some/some-data.service应用程序工作正常,但我有这样一个

打字稿编译错误
app/components/some/some-detail.component.ts(3,45): error TS2307: Cannot find module 'app/services/some/some-data.service'. 

有谁有关于为什么会发生什么想法?

回答

0

打字稿编译器认为“应用程序/服务/一些/一些-data.service”低于外部模块“应用程序”的路径(在node_modules),不认为这是一个路径

import {SomeInfo, SomeInfoService} from './../../services/some/some-data.service'; 

这不是很丑吗?

编辑

您可以创建一个(说)export-services.ts文件(比如说)services它会将您的服务

export * from './some/some-data.service' 
export * from './other/other-data-service' 
... 

然后从该文件只

import {DataService, OtherService,...} from './../../services/export-services' 
重新导入

显然这个工作,你不能使用default出口和所有导出的组件onent名称必须是唯一

+0

这对我不好。我将在移动文件或将导入取消复制到另一个文件时遇到麻烦。问题很小,但也许有一个更优雅的方法来解决它? – user3272018

+0

看我上面的编辑 –

相关问题