问题标签 [turborepo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
32 浏览

javascript - 直接在通用 React 组件库中将 SVG 转换为 JSX 的最佳方法

我试图找出在我的 React 通用组件库中直接将 SVG 图像作为 JSX 组件导入的最佳方法。“通用组件库”是指一个单独的包,其中包含我组织内的各种 Web 应用程序可以使用的通用组件。

这是一个使用名为 Turborepo 的库的 web 应用程序 (apps/web) 和通用 ui 库 (packages/my-core) 的 monorepo 设置示例:https ://github.com/MahdiTa97/turborepo-boilerplate /blob/main/package.json

通常在 NextJS 或 Create React App 项目中,我会利用 SVGR webpack 插件并编写如下导入语句:

import { ReactComponent as ExampleIcon } from 'common-ui-library/images/icon.svg'

并且会像使用任何普通的 React 组件一样使用 ExampleIcon。


在通用 UI 库的上下文中,情况有些不同。Webpack 没有在库中使用,据我所知,这个“通用 ui 库”中包含的所有内容都需要是一个合适的模块。

我想做的最后一件事是设置一个单独的“图像”包,它使用 Rollup(或类似的)和某种在我开发时运行的观察器。

我对这种特殊设置如何让我无需为通用 ui 库运行单独的观察程序即可进行开发感到非常满意。

0 投票
1 回答
112 浏览

reactjs - Turborepo - 使用另一个库的库 - 您可能需要适当的加载器来处理此文件类型

复制应用:https ://github.com/uriklar/turborepo-lib-dep-lib-repro

我正在使用 Turborepo 的基本示例(nextjs app + ui 库)

我想添加一个额外的 ui 库并让我的 ui 库依赖它。

我在anotheruipackages 目录中创建了库并将其添加为如下依赖项ui

当我尝试构建web应用程序(使用Buttonfrom ui)时,我收到以下错误:

我的问题是:
是否可以让一个库依赖于同一个 monorepo 中的另一个库?

谢谢!

0 投票
0 回答
27 浏览

reactjs - 在使用 turborepo 引导的 monorepo 中配置模块别名

我正在尝试将多个存储库迁移到 mono repo 架构,目前正在开发一个使用 turbo repo 引导的 POC。

我看到的问题是 ts 模块别名配置不正确。我目前有一个 ui 包,我正在尝试像这样从 index.tsx 导出一个按钮组件(注意,VS 代码没有抱怨,它认为它可以解析模块): 在此处输入图像描述

但是,当我尝试构建我的应用程序时,我发现该模块实际上并未解析:

找不到模块:无法解析“@/components/Button”

我在这里不知所措,有人知道如何使用 turbo repo 正确配置模块别名吗?下面是 tsconfig.json:

0 投票
0 回答
40 浏览

node.js - tsconfig.json 扩展不适用于 Mono 存储库

我使用 turborepo 和 yarn 来制作 Mono 存储库,

我有一个工作区包,它包含文件夹 tsconfig,包名为@packages/tsconfig和主文件 tsconfig.json 另外,我还有另一个名为 apps 的工作区,其中包含文件夹 bot tsconfig.json:但它不起作用

更多代码

apps/bot/package.json

apps/bot/tsconfig.json

packages/tsconfig/package.json

怎么了?

0 投票
0 回答
12 浏览

reactjs - Monorepo 导入的 Typescript JSX 组件中的 ReferenceError

我正在使用 Turborepo 构建一个 Typescript monorepo,其中包含许多组成 UI 框架的包。第一个组件是一个非常基本的多面板显示,它使用 tsc 转换为 ES6。包可以正确编译和构建,但是当我尝试从包中导入其中一个 JSX 组件时,出现以下错误。

我对使用 monorepos 还是很陌生,所以我确信我错过了一些配置,但这是开箱即用的 Turborepo,我一直希望它可以正常工作。repo 结构是默认的 Turborepo 结构,但无论如何我都附上了它,以防我在那里遗漏了一些东西。

错误

单一回购结构

0 投票
0 回答
39 浏览

create-react-app - 在 npm 工作区中使用 create-react-app 找不到模块“postcss-preset-env”错误

我正在尝试create-react-app在 Turborepo monorepo 中添加一个应用程序。

问题是,如果我npm install从 monorepo 的根目录运行,然后尝试通过运行来启动 CRA 应用程序npm run dev,我会在编译时收到以下错误:

加载 PostCSS“postcss-preset-env”插件失败:找不到模块“postcss-preset-env”

我注意到,如果我npm install从 CRA 应用程序文件夹 ( /apps/my-app) 中运行,然后npm run dev从 monorepo 的根目录运行,它运行得很好。

我还注意到,根据我运行npm install的位置,内容/apps/my-app/node_modules会有所不同,但我认为这是预期的行为。

如果我正确理解npm workspaces docs,您应该始终npm install从 monorepo 的根目录运行。

知道我在这里缺少什么吗?

我正在使用 npm 8.3.1。

这是一个带有示例的公共回购:https ://github.com/oncet/turborepo-cra

0 投票
0 回答
9 浏览

javascript - 在 npm run build 上的 Docker 中出现错误“错误哈希文件”

我正在使用看起来像这样的基本 Dockerfile:

我的项目是由 API 和前端包组成的 monorepo(使用 turborepo 制作)。当我使用 docker compose 启动图像时,它在步骤npm run build上失败,并出现以下错误:

在本地(Windows)构建它可以完美运行,没有任何错误。

有任何想法吗?