如何在/ src之外编译create-react-app来编译代码?

时间:2018-06-18 11:51:54

标签: reactjs typescript create-react-app

我有一个文件夹,其中包含两个项目/frontend/backend,其中/frontend是使用create-react-app-typescript的项目。

现在,我想在两个项目之间共享一些代码(最值得注意的是:API响应的类型定义)。这些目前位于/lib

但是,当我尝试从React组件中的/lib内导入代码时,create-react-app会告诉我

  

找不到模块:您试图导入位于项目src /目录之外的../../../lib/endpoints/example。不支持src /之外的相对导入。您可以在src /中移动它,或者从项目的node_modules /中添加符号链接。

我不想在/frontend/src内移动共享代码。但是,将它放在node_modules中似乎会导致没有编译的TypeScript代码。因为我试图在开发中保留热重新加载,所以在开始之前编译它不会解决这个问题。

有没有办法配置create-react-app来编译特定目录,例如/frontend/node_modules/lib

2 个答案:

答案 0 :(得分:1)

我这样构造我的项目

enter image description here

然后执行以下命令来链接libfrontend子文件夹中的backend文件夹

cd frontend
npm link ../lib
cd ../backend
npm link ../lib

现在我在lib中添加的任何源代码都可以在backendfrontend中立即使用

答案 1 :(得分:0)

您要实现的目标是创建一个monorepo。有专门用于此目的的工具,尤其是Lerna。 Lerna可用于在一个存储库中创建多个NPM软件包,并在彼此之间进行软链接,以便例如一个前端程序包可以通过从前端程序包的node_modules目录创建软链接来访问不同目录(但在同一存储库中)中的通用程序包。