我有两个包ui
,app
在一个使用turborepo的“monorepo”中。
我有带有文件的 ui 存储库.tsx
,但它没有被构建,它package.json
main
是一个打字稿文件。
但是,在运行时,nextjs
我在从主文件导入时遇到错误ui
。
是否可以node_module
从nextjs
角度考虑这一点?当我查看时,config.module.rule
我找不到打字稿文件的任何规则。我不确定 nextjs 文件的打字稿配置如何。
我正在尝试创建一个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 时,它看不到它们:
任何有关如何实现此目标或解决此问题的替代方法的建议都将受到赞赏,谢谢!
我有以下场景:
/apps
/api
/web
/packages
/shared
Run Code Online (Sandbox Code Playgroud)
api
并web
有依赖性shared
。它们都是通过workspace: *
using来安装的pnpm
。
我的turbo.json
看起来像这样:
/apps
/api
/web
/packages
/shared
Run Code Online (Sandbox Code Playgroud)
所有这些都有一个dev
启动观察程序和热重载的脚本。但问题是,当我想运行时turbo run dev
,api
无法启动,因为shared
尚未启动。
有没有办法设置优先级shared
?
我无法使用dependsOn
,因为它会等待开发脚本shared
完成,但它不会,因为它是一个观察者。
我正在尝试使用此处的说明将 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)
我该如何修复它?
我正在尝试将 Turborepo 添加到我的 Svelte 应用程序中,但看起来npx create-turbo@latest
命令和示例目前仅支持 NextJs。如何配置它以运行 Svelte 和 Sveltekit 应用程序?
我们最近使用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
我正在使用turborepo
远程缓存,有时我会遇到意想不到的缓存缺失。
我是否可以以某种方式turborepo
列出它用作哈希函数输入的文件,以便我可以更深入地了解它认为发生了变化的内容?
我有一个具有以下结构的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.json
compilerOptions
typeRoots
任何想法?
我正在尝试使用 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) 如 Turborepo 文档中所示,monorepo 可以包含内部包,以便在 monorepo 内的应用程序之间共享代码。
还有一个文档部分介绍如何通过Changesets CLI在 monorepo 中发布包。
是否可以对所有包使用变更集的版本碰撞,但只将其中一个包发布到 npm 注册表?
我知道可以阻止所有包的发布。
目标示例:运行pnpm changeset
++后,包会进行版本升级,同时pnpm changeset version
包会进行版本升级并发布到 npm。pnpm changeset publish
web
ui
turborepo ×10
monorepo ×7
javascript ×3
next.js ×2
pnpm ×2
changeset ×1
intellisense ×1
jestjs ×1
node.js ×1
svelte ×1
sveltekit ×1
typescript ×1
vercel ×1
vite ×1