【问题标题】:Sharing code with typescript, node and angular与打字稿、节点和角度共享代码
【发布时间】:2020-07-18 04:14:14
【问题描述】:

我正在尝试使用 typescript 建立一个项目,其中需要一个 angular 客户端,后端有一个最小的节点服务器。

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

的文件夹结构
/
/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' 下 '服务器/'。 'rootDir' 应包含所有源文件"

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

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

感谢您帮助在适当的 tsconfig.json 文件中设置正确的设置

【问题讨论】:

    标签: angular typescript angular-cli


    【解决方案1】:

    您可以为每个文件夹定义多个打字稿。 为了让节点能够拥有像fspath 这样的通用功能,您需要将模块设置为commonjs。

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

    here 正在使用

     "rootDirs": [
          "./src",
          "../shared/src"
        ],
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 嗯。也许我被 Angular-cli 误导了(或者更有可能是被误解了)——他们的默认项目在 / 中有一个 tsconfig.json,在“/src/app”中有另一个 tsconfig.app.json,它扩展了 root 中的配置跨度>
      • 你绝对可以在一个项目中拥有多个tsconfig.json文件,使用配置继承。在这种情况下你是否应该是另一回事。
      • 是的,我认为节点项目需要“commonjs”模块,而角度需要“es2015”
      猜你喜欢
      • 2018-04-03
      • 2020-10-27
      • 2020-03-07
      • 2022-06-30
      • 2013-08-16
      • 1970-01-01
      • 2017-08-22
      • 2019-03-03
      • 2021-12-05
      相关资源
      最近更新 更多