mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
73 lines
2 KiB
Markdown
73 lines
2 KiB
Markdown
# Monorepo Guide
|
|
|
|
Roo Code has transitioned to a monorepo powered by [PNPM workspaces](https://pnpm.io/workspaces) and [Turborepo](https://turborepo.com).
|
|
|
|
When you first pull down the monorepo changes from git you'll need to re-install all packages using pnpm. You can install pnpm using [these](https://pnpm.io/installation) instructions. If you're on MacOS the easiest option is to use Homebrew:
|
|
|
|
```sh
|
|
brew install pnpm
|
|
```
|
|
|
|
Once pnpm is installed you should wipe out your existing node_modules directories for a fresh start:
|
|
|
|
```sh
|
|
# This is optional, but recommended.
|
|
find . -name node_modules | xargs rm -rvf
|
|
```
|
|
|
|
And then install your packages:
|
|
|
|
```sh
|
|
pnpm install
|
|
```
|
|
|
|
If things are in good working order then you should be able to build a vsix and install it in VSCode:
|
|
|
|
```sh
|
|
pnpm vsix -- --out ../bin/roo-code-main.vsix && \
|
|
code --install-extension bin/roo-code-main.vsix
|
|
```
|
|
|
|
To fully stress the monorepo setup, run the following:
|
|
|
|
```sh
|
|
pnpm clean && pnpm lint
|
|
pnpm clean && pnpm check-types
|
|
pnpm clean && pnpm test
|
|
pnpm clean && pnpm build
|
|
pnpm clean && pnpm bundle
|
|
pnpm clean && pnpm bundle:nightly
|
|
|
|
pnpm clean && pnpm npx turbo watch:bundle
|
|
pnpm clean && pnpm npx turbo watch:tsc
|
|
|
|
pnpm --filter @roo-code/vscode-e2e test:ci
|
|
|
|
pnpm clean && \
|
|
pnpm vsix -- --out ../bin/roo-code.vsix && \
|
|
code --install-extension bin/roo-code.vsix
|
|
|
|
pnpm clean && \
|
|
pnpm vsix:nightly -- --out ../../../bin/roo-code-nightly.vsix && \
|
|
code --install-extension bin/roo-code-nightly.vsix
|
|
```
|
|
|
|
### Turborepo
|
|
|
|
Note that this excludes the `build` task for next.js apps (@roo-code/web-\*).
|
|
|
|
Tasks: `build` -> `bundle` -> `vsix`
|
|
|
|
build:
|
|
|
|
- `@roo-code/build` [input: src, package.json, tsconfig.json | output: dist]
|
|
- `@roo-code/types` [input: src, package.json, tsconfig.json, tsup.config.ts | output: dist]
|
|
- `@roo-code/webview-ui` [input: src, package.json, tsconfig.json, vite.config.ts | output: ../src/webview-ui]
|
|
|
|
bundle:
|
|
|
|
- `roo-cline` [input: * | output: dist]
|
|
|
|
vsix:
|
|
|
|
- `roo-cline` [input: dist | output: bin]
|