Ionic 2在“node_modules”之外的动态导入

时间:2017-06-02 20:15:41

标签: typescript npm ionic2 dependencies

我已在此页面阅读了ModuleResulution关于打字稿的说明:https://www.typescriptlang.org/docs/handbook/module-resolution.html#node

据我所知,我要导入的所有文件必须位于node_modules目录中。有没有办法导入不在此目录中的文件?

假设我有以下目录结构(src/MyApp/):

├── Console
│   └── Console.ts 
├── Interfaces
│   └── CredentialsInterface.ts 
└── Service
    ├── Authentication.ts
    ├── Router.ts
    └── Connector.ts

然后例如在我的src/pages/login/login.ts中,我使用它来导入Console.ts

import { Console } from '../../MyApp/Console/Console'; 

但我希望实现这样的目标:

import { Console } from '@MyApp/Console/Console';

@MyAppsrc/MyApp的别名。

由于潜在的文件/文件夹重定位或稍后重构我可能想要替换我的文件的位置,但我不想手动浏览所有文件以更改“硬编码”路径,如果这是有意义的,我知道这可以用于其他工具,例如Composer

这有可能吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

要做到这一点,你必须更新几个文件,你可以通过更新tsconfig.json并扩展webpack配置文件来实现。

tsconfig.json上,您需要添加compilerOptions

"baseUrl": "./src",
"paths": {
  "app/*": [
    "app/*"
  ],
  "@env": [
    "environments/environment"
  ],
  "interfaces/*": [
    "interfaces/*"
  ],
  "providers/*": [
    "providers/*"
  ],
  "validators/*": [
    "validators/*"
  ]
}

我留下了一个简短文档的链接,我做了这个文档实现了这一点,并使用了angular-cli的环境

Ionic envs and beauty paths