簡體   English   中英

使用某些根路徑導入的Typescript

[英]Typescript import using path from some root

有沒有簡單的設置方法,以便我可以從某個根點開始import

例如:

- module1
   \- file1.ts
- module2
   \- file2.ts

在file2中我想import file1

import { foo } from '../module1/file1'

我想做的是:

import { foo } from 'src/module1/file1'

Angular2以某種方式使用它(參見https://github.com/angular/angular/blob/master/modules/angular2/src/core/compiler/compiler.ts )。 我查看了他們的構建過程,但它太復雜了,我不確定他們是如何啟用它的。

所有ES6導入都是相對的,angular2使用systemjs來處理所有導入/導出。 在systemjs配置中,您可以定義一個地圖。 (我不會去那里)

你必須記住ES6中的導入只是加載javascript文件,所以如果src是你的root,你應該只能從/ src / module1 / files導入

https://www.npmjs.com/package/app-module-path似乎是節點的最佳解決方案。

更新:

我這樣用它

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)但是在您的環境中值得一試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM