如何设置Typescript类,以便我的浏览器和节点应用程序可以使用它?

时间:2016-07-10 13:45:49

标签: typescript module

我编写了一个网络应用程序,它只是两个独立的项目,每个项目都在不同的文件夹中,并且都有自己独特的文件。

客户端部分使用SystemJS Typescript 1.8.10(根据here)以Angular 2(RC-4)编写。 服务器部分是使用Typescript 1.8.10(以及)的简单NodeJS应用程序。

如上所述,每个文件夹都有自己独特的文件夹(包括自己的tsconfig.json文件。)

一切正常。

但是现在,我想使用类MySharedClass {}来同时使用这些项目。 我该怎么做?

当然,我可以在每个项目中放置一个源代码副本(即有2个源文件副本),并且构建并运行正常 - 但这不是我们做事的方式。

我想创建一个名为'common'的'第三'项目并将MySharedClass {}放在那里,但我不能做

import {MyClass} from "../../../common/my-class";

在我的每个项目中,因为它在运行时似乎没有引用它。 (我无法让它在运行期间引用该文件,因为我认为原因是您无法在项目范围之外引用该文件?!?)

研究周围,似乎没有解释如何做到这一点 - 我错过了一些明显的东西吗?

请随时指出我正确的方向,为了解决这个问题,人们正在做些什么 - 我需要学习一些东西吗?我很确定我理解ES6模块系统(按照最近的Typescript ES6方式),因为我在项目中一直使用这种方法。我目前没有使用构建工具,因为我不需要额外的复杂性:我只使用package.json文件中提供的脚本(根据here)。我现在需要考虑使用Gulp吗?

1 个答案:

答案 0 :(得分:0)

感谢。是的@Zen是包含路径的问题。我没有使用Visual Studio并使用Node作为网络服务器(我使用的是Atom但是它一直挂着,所以它回到Notepad++我去......)。是的@jobou你是对的,说公共依赖项在文件夹之外,因此无法通过Web服务器进行维护。我已经解决了我的问题(如@Zen所说),创建了一个名为'common'的第三个项目,当我构建其他每个项目时,我只运行一个简单的脚本,将必要的文件复制到相应的文件夹中,这样其他项目可以使用该类。