有没有办法导入带别名的模块?
例如。我在文件夹common/services/logger/logger.ts
中有角度服务。
如何使导入看起来像import {Logger} from "services"
,其中“services”包含我的所有服务?
答案 0 :(得分:2)
创建一个包含所有服务的文件,并为其命名,例如: services.ts
。该文件可以看作是一个桶,因为它将包含并导出您的所有服务。该文件可能如下所示:
export * from './logger/logger';
export * from ...;
etc.
现在您可以按如下方式导入此单个文件:
import * as Services from 'common/services';
然后您可以通过Services.Logger
访问您的服务,或直接导入您想要的服务:
import {Logger} from 'common/services';
注意,您已经更改了路径,因为这只是一个示例。有关此技术的更多信息,请查看here。
答案 1 :(得分:1)
为了解决这个问题,我使用了webpack。如果要在任何地方导入依赖项,则需要在webpack config中添加别名。例如,您在根目录中有shared
个文件夹,其中包含services
个文件夹。文件夹services
应该index.ts
导出您需要的所有服务(例如Logger
)。别名是"services" => "shared/services"
。
要在WebStorm中自动完成工作,您只需将shared
文件夹标记为“资源根目录”。