与typescript,node和angular共享代码

时间:2018-01-23 15:35:21

标签: angular typescript angular-cli

我尝试使用打字稿设置一个需要在后端使用最小节点服务器的角度客户端的项目。

理想情况下,我希望拥有类似于

的文件夹结构
/
/dist : angular client (--prod) files
/server : node js files (created by typescript)
/tests : server-side test scripts
/src/client: angular typescript
/src/server: node typescript
/src/tests: node typescript test scripts
/src/common: common files shared between node & angular (interface defintions, utils etc)

我真的很想为每个"文件夹"创建一个tsconfig.json文件。

我得到的错误包括根问题,未找到模块等

我遇到的主要问题是与可怕的

有关
  

"错误TS6059:文件' common / interfaces / cell.ts'不是在rootDir'   '服务器/&#39 ;. ' ROOTDIR'预计将包含所有源文件"

在构建/编译服务器时,是否可以取出common文件夹并将其移动到服务器文件夹下,以便找到它?

我原以为这是一个常见的要求(如果不是,那么最佳做法是什么?;)

感谢您帮助我们在相应的tsconfig.json文件中设置正确的设置

2 个答案:

答案 0 :(得分:0)

您不应该在每个文件夹中都有tsconfig.json文件。 tsconfig.json用作TypeScript编译器配置。也就是说,文件基本上告诉angular如何将所有内容编译为javascript,因为浏览器无法运行Typescript,这是Angular使用的。您应该只有一个文件用于配置,它告诉整个应用程序如何编译。至于结构,它可以以任何你喜欢的方式设置,但你的配置必须指向正确的文件。

答案 1 :(得分:0)

你可以确定每个文件夹有多个打字稿定义。 要使节点能够具有像fs或path这样的常用功能,您需要将模块设置为commonjs。

我认为你可以在这种情况下使用rootDirs。

here正在使用

“rootDirs”:[       “./src”       “../shared/src”     ],