使用来自某个根目录的路径导入Typescript
是否有任何简单的设置方法,以便我可以从某个根点开始导入 e、 g: 在文件2中,我想导入文件1使用来自某个根目录的路径导入Typescript,typescript,angular,Typescript,Angular,是否有任何简单的设置方法,以便我可以从某个根点开始导入 e、 g: 在文件2中,我想导入文件1 import { foo } from '../module1/file1' 我想做的是: import { foo } from 'src/module1/file1' Angular2以某种方式使用了这个(参见)。我查看了他们的构建过程,但它太复杂了,我不确定他们是如何实现的。所有ES6导入都是相对的,angular2使用systemjs处理所有导入/导出。在systemjs配置中,您可以定义
import { foo } from '../module1/file1'
我想做的是:
import { foo } from 'src/module1/file1'
Angular2以某种方式使用了这个(参见)。我查看了他们的构建过程,但它太复杂了,我不确定他们是如何实现的。所有ES6导入都是相对的,angular2使用systemjs处理所有导入/导出。在systemjs配置中,您可以定义一个映射。(我不会去那里) 您必须记住,ES6中的导入只是加载javascript文件,因此如果src是您的根,那么您应该能够从/src/module1/文件导入似乎是节点的最佳解决方案 更新: 我是这样用的
root
\- module1
| \- file1.ts
\- module2
| \- file2.ts
\- main.ts
main.ts
是应用程序的入口点,这是前两行:
import * as path from 'path';
require('app-module-path').addPath(path.resolve(__dirname, '..'));
然后从module2/file2.ts
我可以执行以下操作:
import { Stuff } from 'root/module1/file1';
我正在使用Angular CLI及其生成的标准结构 所以我使用的所有东西都在
src/app
中
我的主要HTTP服务位于src/app/services/httpService.ts
要导入此服务,我使用:
import { HttpService } from 'app/services/httpService'
我不确定这是否依赖Angular CLI所做的任何特殊配置(我意识到在发布此问题时Angular CLI并不存在),但在您的环境中值得一试。我的应用程序实际上是一个节点应用程序,因此typescript被传输到ES5并需要。我认为您无法使用require从根目录导入,除非您以某种方式对其进行破解或强制编译器为您生成正确的相对路径。您是否成功地使
app module path
正常工作?因为它不适用于我使用它。是的,请参阅更新的答案。这对我运行的任何版本的node都有效。非常感谢,我将尝试一下:))这是typescript编译器的一个功能,自从提出这个问题以来已经有了很大的改进,还有一个可以配置自定义路径()的设置。此外,节点和浏览器模块分辨率之间存在(或曾经存在)一些差异。
import { HttpService } from 'app/services/httpService'