2017-10-29 7 views
1

のプロジェクト(例:clientserver)はいくつかの共通機能(commonフォルダにあります)を共有しています。このフォルダ構造を考えてみましょう:複数のソースフォルダから単一のフラットoutDirにファイルを出力するようにtsconfig.jsonを設定する方法は?

client.tsユーティリティをこのようにインポート
+ client 
| - tsconfig.json 
| + src 
|  - client.ts 
+ common 
    + src 
     - util.ts 

import { Util } from '../../common/src/util'; 

簡潔にするために、私はclientと同じレベルにあるserverフォルダを、省略しています。 outフォルダにtranspilationした後、私はこの単純なフラットなフォルダ構造を取得したいと思います:

+ client 
| + out 
|  - client.js 
|  - util.js 

を...そして、理想的に私は単純に、実際のフォルダの共通ユーティリティとらわれないインポートすることもできます

import { Util } from './util'; 

これを達成するにはどうすればtsconfig.jsonを設定すればよいですか?

私はrootDirsbaseUrlpathsのさまざまな組み合わせを試してみましたが、私はまだoutの下で(でもそのsrcサブフォルダを含む両方)clientcommonサブフォルダを取得しています。

答えて

0

今のところ、あなたはできません。

私はあなたの状況に似ていますが、私は見てきましたが、TypeSciptの設定でこの動作を変更する方法がないようです。

あなたができることは、すべてのビルド後に、jsファイルを移動し、生成されたフォルダを削除するために、何か他のもの(Gruntタスク、シェルスクリプトなど)を使用することです。

0

私は現在のプロジェクト(同じ設定をしています)で共通のlibへのリンクを両方のソースに入れてこの問題を解決しました。

common/ 
    src/ 
    lib/ 
client/ 
    src/ 
    lib/ -> $PROJECT_PATH/common/src/lib/ 
server/ 
    src/ 
    lib/ -> $PROJECT_PATH/common/src/lib/ 

コンパイルとバンドルは、そのディレクトリをローカルのものとして扱うため、トランスペアレントになります。

関連する問題