如何在TypeScript中的项目之间共享文件?

时间:2016-06-14 01:22:40

标签: typescript

我知道之前已经问过这个问题,但没有给出好的答案,也许最近TypeScript的变化会提供一个新的解决方案。

See this screenshot of Visual Studio. sharedMessage is stored in one project and linked to the other.

我想要做的就是在服务器和客户端之间共享sharedMessage.ts,但是客户端和服务器加载模块之间似乎存在根本性的中断。服务器使用导出模块,而客户端使用名称空间。显然我错过了一些东西,但是一天的谷歌搜索没有给我一个不需要安装和学习一个或两个(或更多)第三方工具的答案。

有人能给我一些线索吗?感谢。

2 个答案:

答案 0 :(得分:1)

  

服务器使用导出模块,而客户端使用名称空间

在任何地方使用模块。优先commonjs

答案 1 :(得分:0)

如果不使用第三方工具,我的目标似乎无法实现。问题归结为服务器需要第一行sharedMessage.ts

export class sharedMessage

虽然客户端代码只需要

class sharedMessage

因为我使用了visual studio,所以导航到了项目属性 - > “构建事件”选项卡,并将prebuild.bat文件添加到“预构建”文本框中。在那个批处理文件中,我只需输入

copy P:\TypeScript\Test\NodeJsMessage\sharedMessage.ts P:\TypeScript\Test\NodeJsMessage\NodeJsMessageClient\sharedMessage.ts /Y
p:\util\fnr.exe --cl --dir "P:\TypeScript\Test\NodeJsMessage\NodeJsMessageClient" --fileMask "sharedMessage.ts" --find "export class" --replace "//this file is generated automatically -- do not edit\nclass"

fnr.exe是第三方"查找并替换"工具。我只是替换了#34;导出类"只是" class"。现在,在每次构建之前,对服务器sharedMessage.ts文件的任何更改都将复制到客户端项目中,并且" export"被删除了。

对于我想在项目之间共享的每个文件,我必须为此批处理文件添加两行。我想这个解决方案现在必须足够好。