标签: turborepo

在 webpack 构建中包含本地包 (turborepo)

我有两个包uiapp在一个使用turborepo的“monorepo”中。

我有带有文件的 ui 存储库.tsx,但它没有被构建,它package.json main是一个打字稿文件。

但是,在运行时,nextjs我在从主文件导入时遇到错误ui

是否可以node_modulenextjs角度考虑这一点?当我查看时,config.module.rule我找不到打字稿文件的任何规则。我不确定 nextjs 文件的打字稿配置如何。

next.js turborepo

6
推荐指数
1
解决办法
1万
查看次数

Turborepo——如何将应用程序嵌套在“apps”文件夹或不同的顶级目录中?

我正在尝试创建一个turborepo,其中包含多种类型的基础设施,例如terraform,可能有100多个“无服务器”功能。

理想情况下,我希望将它们更多地组织到有意义的子文件夹结构中,而不是拥有一个包含数百个文件夹的巨大“应用程序”文件夹。

我尝试配置 pnpm 工作区来查看嵌套文件夹,这似乎很好,尽管 Turborepo 似乎没有任何文档或选项来运行/识别嵌套文件夹。

我尝试创建一个具有一些基本功能的子目录结构,这些功能只需登录控制台即可确认 Turborepo 默认情况下会选择它们:

apps
-- functions
---- function 1
---- function 2
---- more functions
------ more function 1
------ more function 2
Run Code Online (Sandbox Code Playgroud)

每个都有自己的 package.json、名称和“dev”脚本。

不幸的是,在运行 dev 时,它看不到它们:

在此输入图像描述

任何有关如何实现此目标或解决此问题的替代方法的建议都将受到赞赏,谢谢!

node.js monorepo pnpm-workspace turborepo

6
推荐指数
1
解决办法
3654
查看次数

Turborepo 设置开发管道的执行顺序

我有以下场景:

/apps
    /api
    /web
/packages
    /shared
Run Code Online (Sandbox Code Playgroud)

apiweb有依赖性shared。它们都是通过workspace: *using来安装的pnpm

我的turbo.json看起来像这样:

/apps
    /api
    /web
/packages
    /shared
Run Code Online (Sandbox Code Playgroud)

所有这些都有一个dev启动观察程序和热重载的脚本。但问题是,当我想运行时turbo run devapi无法启动,因为shared尚未启动。

有没有办法设置优先级shared

我无法使用dependsOn,因为它会等待开发脚本shared完成,但它不会,因为它是一个观察者。

monorepo pnpm turborepo

6
推荐指数
1
解决办法
1747
查看次数

如何修复错误:“在您的项目中无法检测到 Next.js 版本。” 使用 Turborepo 和 pnpm 部署到 Vercel 时

我正在尝试使用此处的说明将 Turborepo示例应用程序部署到 Vercel ,并收到错误:

Error: No Next.js version could be detected in your project. Make sure `"next"` is installed in "dependencies" or "devDependencies"
Run Code Online (Sandbox Code Playgroud)

我该如何修复它?

monorepo next.js vercel pnpm turborepo

5
推荐指数
1
解决办法
5330
查看次数

如何使用 sveltekit 和 pnpm 设置turborepo

我正在尝试将 Turborepo 添加到我的 Svelte 应用程序中,但看起来npx create-turbo@latest命令和示例目前仅支持 NextJs。如何配置它以运行 Svelte 和 Sveltekit 应用程序?

monorepo svelte sveltekit turborepo

5
推荐指数
1
解决办法
3605
查看次数

VSCode - Turborepo - 本地包的自动导入建议错过了主入口点

我们最近使用turborepo将多个存储库重新分组为一个单一的monorepo,以便使用本地包实现更好的代码可重用性。

我们的文件夹结构如下所示:

/apps
| /app1
| /app2
/packages
| /package1
| | /some-folder
| | | someHelper.js
| | index.js // Main entry point exporting everything
Run Code Online (Sandbox Code Playgroud)

package1 package.json 文件看起来像这样

{
  "name": "package1",
  "main": "index.js",
  // Omitted irrelevant properties
}
Run Code Online (Sandbox Code Playgroud)

应用程序 package.json 看起来像这样

{
  "name": "app1",
  "dependencies": {
    "package1": "*"
  }
  // Omitted irrelevant properties
}
Run Code Online (Sandbox Code Playgroud)

当在应用程序和我引用的上下文中时someHelper,智能感知导入建议给出以下内容:

import someHelper from "<rootDir>/packages/package1/some-folder/someHelper";
Run Code Online (Sandbox Code Playgroud)

虽然我希望它像这样导入:

import { someHelper } from "package1";
Run Code Online (Sandbox Code Playgroud)

两种进口都有效,但第二种更干净。我只是无法让 VSCode 以这种方式工作。

我在各个级别(应用程序、包和根目录)尝试了 jsconfig.json 路径别名的不同组合,但都没有达到预期的效果。

我缺少什么吗?

javascript intellisense visual-studio-code monorepo turborepo

5
推荐指数
1
解决办法
1697
查看次数

如何判断turborepo正在使用哪些文件来计算其哈希值

我正在使用turborepo远程缓存,有时我会遇到意想不到的缓存缺失。

我是否可以以某种方式turborepo列出它用作哈希函数输入的文件,以便我可以更深入地了解它认为发生了变化的内容?

turborepo

5
推荐指数
1
解决办法
499
查看次数

无法使用turborepo monorepo解析自定义类型定义

我有一个具有以下结构的turborepo项目:

apps
  - my-app
    - src
      - some-test.spec.ts
    - tsconfig.json
    - types
      - index.d.ts
packages
  - tsconfig
    - base.json
Run Code Online (Sandbox Code Playgroud)

看起来pacakges/tsconfig/base.json像:

apps
  - my-app
    - src
      - some-test.spec.ts
    - tsconfig.json
    - types
      - index.d.ts
packages
  - tsconfig
    - base.json
Run Code Online (Sandbox Code Playgroud)

看起来apps/my-app/tsconfig.json像:

{
  "extends": "tsconfig/base.json",
  "include": [
    "src"
  ],
  "compilerOptions": {
    "typeRoots": [
      "./types"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

其中apps/my-app/types/index.d.ts有我正在使用的库的定义,并且我已经覆盖了它们。

我遇到的问题是我无法让 TypeScript 识别笑话类型。

如果我只在stypes下留下,则玩笑有效,但自定义类型则无效。如果我只保留,则自定义类型可以工作,但不能开玩笑。base.jsoncompilerOptionstypeRoots

任何想法?

typescript jestjs turborepo

5
推荐指数
0
解决办法
668
查看次数

如何在 monorepo 中共享 Vite 配置?

我正在尝试使用 Turborepo 制作 monorepo。我在那里有很多 Vue 项目,我需要在所有应用程序之间共享 Vite 配置。以下是我试图实现这一目标的方法。

我有一个名为@monorepo/configs

packages/
  configs/
    package.json
    index.ts
    vite.config.base.ts
Run Code Online (Sandbox Code Playgroud)

包.json:

{
  "name": "@monorepo/configs",
  "version": "0.0.1",
  "private": true,
  "type": "module",
  "main": "index.ts",
  "types": "index.ts",
  "files": [
    "./src/tsconfig.base.json",
    "./src/vite.config.base.js"
  ]
}

Run Code Online (Sandbox Code Playgroud)

vite.config.base.ts:

import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'

// regular config
export const ViteConfigBase = defineConfig({
  resolve: {
    alias: {
      // some aliases
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

索引.ts:

export { ViteConfigBase } from './vite.config.base' 
Run Code Online (Sandbox Code Playgroud)

在另一个应用程序的 vite.config.ts 中:

import { …
Run Code Online (Sandbox Code Playgroud)

javascript monorepo vite turborepo

5
推荐指数
1
解决办法
4923
查看次数

我可以使用变更集在一个 Turborepo 中仅发布软件包的子集吗?

如 Turborepo 文档中所示,monorepo 可以包含内部包,以便在 monorepo 内的应用程序之间共享代码。

还有一个文档部分介绍如何通过Changesets CLI在 monorepo 中发布包

是否可以对所有包使用变更集的版本碰撞,但只将其中一个包发布到 npm 注册表?

我知道可以阻止所有包的发布

目标示例:运行pnpm changeset++后,包会进行版本升级,同时pnpm changeset version包会进行版本升级发布到 npm。pnpm changeset publishwebui

javascript changeset monorepo turborepo

5
推荐指数
0
解决办法
666
查看次数