【发布时间】:2021-04-22 07:24:00
【问题描述】:
我正在使用 TypeScript 构建一个 Node 和 React 应用程序。其目录树如下:
我的问题:
由于我对两个堆栈使用相同的语言,并且将来还会使用 TypeScript 添加 React Native,所以我想知道如何创建一组用于所有堆栈的类。
我为什么要这样做:
DRY(不要重复自己):我的目的是充分利用在所有层中使用相同的编程语言,因此创建两个相等的类是没有意义的。
到目前为止我所做的尝试:
我创建了第三个名为“util”的文件夹并放置了一个通用类,只是为了使用它来测试 Node 和 React。像这样:
在 Node.js 中,我使用以下命令将其导入:
import Person from "../../util/person.class";
而在 React.js 中,我使用相同的逻辑来导入它:
import Person from "../../util/person.class";
正如我已经预料的那样,两者都拒绝使用各自根文件夹之外的文件:
我也在互联网上搜索过这个,我发现了一些“弹出”命令,一旦使用,就没有办法回来了,无论如何。我想避免这种方式。有什么方法可以让我对我有利吗?
我还想提一下,我使用“tsc --init”为后端创建了一个 tsconfig.json,并将 rootDir 设置为“./src/”,将 outputDir 设置为“./dist/”。
谢谢。
【问题讨论】:
-
称它为
app-lib,并像任何其他依赖项一样将其安装为模块,而不是通过相对路径导入单个文件。 -
你的意思是我应该将“util”文件夹替换为“lib”?您是否有任何来源,以便我可以阅读并将其用作模块?
-
我的意思是你应该制作它自包含的模块,你通常会称它为库而不是实用程序。要安装本地依赖项,请参见例如docs.npmjs.com/cli/v6/commands/npm-link(但其他包管理器也有类似规定)
-
我喜欢您的解决方案,并会试一试。谢谢伯吉。
标签: javascript node.js reactjs typescript