我希望通过重用后端(Nest.js)服务中的类型、数据传输对象和其他等同于应用程序的内容来利用单体库。在我的情况下,next.js 应用程序和 nest.js 应用程序(它本身是 nest.js 单体库)在根目录的同一级别上。我在 nest-app/libs/types/src/index.ts 中重新导出了一堆文件,然后在我的 next.js 应用程序中进行导入。但是当我这样做时,next.js 会抱怨“编译失败”的错误。
最简单的复现错误的方法如下:
- 为单体库创建任意文件夹,例如
test-import
- 导航至单体库文件夹(
cd test-import
) - 运行
npx create-next-app@latest --typescript
并选择项目名称(如next-app
) - 在单体库的根目录中(与
next-app
相同级别)创建以下external.ts
文件 - 从
next-app
文件夹运行npm run dev
单体库结构:
external.ts
next-app
(other files omitted)
pages
index.tsx
external.ts
export type ExternalType = string;
export const me = "ME";
next-app/pages/index.tsx
正在导入external.ts
的内容。
import { me } from "../../external";
// boilerplate code omitted
<h1 className={styles.title}>
Welcome {me} to <a href="https://nextjs.org">Next.js!</a>
</h1>
以下错误被抛出:
../external.ts
Module parse failed: Unexpected token (1:7)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
> export type ExternalType = string;
|
| export const me = "ME";
api-gateway
服务中,这是一个Nest.js应用程序。如果您能分享一些关于如何在单体库中连接这些内容的良好设计决策的链接,那就太好了。 - DK3Z