2017-10-29 173 views
1

我有多个打字稿项目(例如clientserver),它们共享一些通用功能(位于common文件夹中)。考虑这个文件夹结构:如何配置tsconfig.json以将文件从多个源文件夹输出到单个outDir?

+ client 
| - tsconfig.json 
| + src 
|  - client.ts 
+ common 
    + src 
     - util.ts 

client.ts导入实用程序是这样的:

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

为了简便起见,我省略了server文件夹,它是在同一水平client。该transpilation到out文件夹之后,我想使这个简单的平面文件夹结构:

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

...理想情况下,我可以简单地导入实际文件夹的共同效用无关:

import { Util } from './util'; 

如何配置tsconfig.json来实现?

我试过的rootDirsbaseUrlpaths不同的组合,但我仍然out下得到clientcommon子文件夹(两者甚至包括其子文件夹src)。

回答

0

截至目前,你不能。

我处于类似于你的情况,我环顾四周,但似乎无法通过TypeScipt配置更改此行为。

你可以做的最好的事情是在每次构建之后使用其他的东西(一个Grunt任务,一个shell脚本......)来移动js文件并删除生成的文件夹。

0

我已经解决了这个问题,在我当前的项目(它具有相同的设置)通过将链接到公共库到两个来源。

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

编译和捆绑变得透明,因为工具将该目录视为本地目录。

相关问题