mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-01-09 23:28:07 -05:00
chore(frontend): move from yarn1 to pnpm (#10072)
## 🧢 Overview This PR migrates the AutoGPT Platform frontend from [yarn 1](https://classic.yarnpkg.com/lang/en/) to [pnpm](https://pnpm.io/) using **corepack** for automatic package manager management. **yarn1** is not longer maintained and a bit old, moving to **pnpm** we get: - ⚡ Significantly faster install times, - 💾 Better disk space efficiency, - 🛠️ Better community support and maintenance, - 💆🏽♂️ Config swap very easy ## 🏗️ Changes ### Package Management Migration - updated [corepack](https://github.com/nodejs/corepack) to use [pnpm](https://pnpm.io/) - Deleted `yarn.lock` and generated new `pnpm-lock.yaml` - Updated `.gitignore` ### Documentation Updates - `frontend/README.md`: - added comprehensive tech stack overview with links - updated all commands to use pnpm - added corepack setup instructions - and included migration disclaimer for yarn users - `backend/README.md`: - Updated installation instructions to use pnpm with corepack - `AGENTS.md`: - Updated testing commands from yarn to pnpm ### CI/CD & Infrastructure - **GitHub Workflows** : - updated all jobs to use pnpm with corepack enable - cleaned FE Playwright test workflow to avoid Sentry noise - **Dockerfile**: - updated to use pnpm with corepack, changed lock file reference, and updated cache mount path ### 📋 Checklist #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: **Test Plan:** > assuming you are on the `frontend` folder - [x] Clean installation works: `rm -rf node_modules && corepack enable && pnpm install` - [x] Development server starts correctly: `pnpm dev` - [x] Build process works: `pnpm build` - [x] Linting and formatting work: `pnpm lint` and `pnpm format` - [x] Type checking works: `pnpm type-check` - [x] Tests run successfully: `pnpm test` - [x] Storybook starts correctly: `pnpm storybook` - [x] Docker build succeeds with new pnpm configuration - [x] GitHub Actions workflow passes with pnpm commands #### For configuration changes: - [x] `.env.example` is updated or already compatible with my changes - [x] `docker-compose.yml` is updated or already compatible with my changes - [x] I have included a list of my configuration changes in the PR description (under **Changes**)
This commit is contained in:
@@ -1,46 +1,76 @@
|
||||
This is the frontend for AutoGPT's next generation
|
||||
|
||||
## Getting Started
|
||||
## 🧢 Getting Started
|
||||
|
||||
Run the following installation once.
|
||||
This project uses [**pnpm**](https://pnpm.io/) as the package manager via **corepack**. [Corepack](https://github.com/nodejs/corepack) is a Node.js tool that automatically manages package managers without requiring global installations.
|
||||
|
||||
```bash
|
||||
npm install
|
||||
# or
|
||||
yarn install
|
||||
# or
|
||||
pnpm install
|
||||
# or
|
||||
bun install
|
||||
```
|
||||
### Prerequisites
|
||||
|
||||
Next, run the development server:
|
||||
Make sure you have Node.js 16.10+ installed. Corepack is included with Node.js by default.
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
# or
|
||||
yarn dev
|
||||
# or
|
||||
pnpm dev
|
||||
# or
|
||||
bun dev
|
||||
```
|
||||
### ⚠️ Migrating from yarn
|
||||
|
||||
> This project was previously using yarn1, make sure to clean up the old files if you set it up previously with yarn:
|
||||
>
|
||||
> ```bash
|
||||
> rm -f yarn.lock && rm -rf node_modules
|
||||
> ```
|
||||
>
|
||||
> Then follow the setup steps below.
|
||||
|
||||
### Setup
|
||||
|
||||
1. **Enable corepack** (run this once on your system):
|
||||
|
||||
```bash
|
||||
corepack enable
|
||||
```
|
||||
|
||||
This enables corepack to automatically manage pnpm based on the `packageManager` field in `package.json`.
|
||||
|
||||
2. **Install dependencies**:
|
||||
|
||||
```bash
|
||||
pnpm i
|
||||
```
|
||||
|
||||
3. **Start the development server**:
|
||||
```bash
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
||||
|
||||
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
||||
|
||||
For subsequent runs, you do not have to `npm install` again. Simply do `npm run dev`.
|
||||
### Subsequent Runs
|
||||
|
||||
If the project is updated via git, you will need to `npm install` after each update.
|
||||
For subsequent development sessions, you only need to run:
|
||||
|
||||
```bash
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
Every time a new Front-end dependency is added by you or others, you will need to run `pnpm i` to install the new dependencies.
|
||||
|
||||
### Available Scripts
|
||||
|
||||
- `pnpm dev` - Start development server
|
||||
- `pnpm build` - Build for production
|
||||
- `pnpm start` - Start production server
|
||||
- `pnpm lint` - Run ESLint and Prettier checks
|
||||
- `pnpm format` - Format code with Prettier
|
||||
- `pnpm type-check` - Run TypeScript type checking
|
||||
- `pnpm test` - Run Playwright tests
|
||||
- `pnpm test-ui` - Run Playwright tests with UI
|
||||
|
||||
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
|
||||
|
||||
## Deploy
|
||||
## 🚚 Deploy
|
||||
|
||||
TODO
|
||||
|
||||
## Storybook
|
||||
## 📙 Storybook
|
||||
|
||||
Storybook is a powerful development environment for UI components. It allows you to build UI components in isolation, making it easier to develop, test, and document your components independently from your main application.
|
||||
|
||||
@@ -57,7 +87,7 @@ Storybook is a powerful development environment for UI components. It allows you
|
||||
Run the following command to start the Storybook development server:
|
||||
|
||||
```bash
|
||||
npm run storybook
|
||||
pnpm storybook
|
||||
```
|
||||
|
||||
This will start Storybook on port 6006. Open [http://localhost:6006](http://localhost:6006) in your browser to view your component library.
|
||||
@@ -66,23 +96,63 @@ Storybook is a powerful development environment for UI components. It allows you
|
||||
To build a static version of Storybook for deployment, use:
|
||||
|
||||
```bash
|
||||
npm run build-storybook
|
||||
pnpm build-storybook
|
||||
```
|
||||
|
||||
3. **Running Storybook Tests**:
|
||||
Storybook tests can be run using:
|
||||
|
||||
```bash
|
||||
npm run test-storybook
|
||||
pnpm test-storybook
|
||||
```
|
||||
|
||||
For CI environments, use:
|
||||
|
||||
```bash
|
||||
npm run test-storybook:ci
|
||||
pnpm test-storybook:ci
|
||||
```
|
||||
|
||||
4. **Writing Stories**:
|
||||
Create `.stories.tsx` files alongside your components to define different states and variations of your components.
|
||||
|
||||
By integrating Storybook into our development workflow, we can streamline UI development, improve component reusability, and maintain a consistent design system across the project.
|
||||
|
||||
## 🔭 Tech Stack
|
||||
|
||||
### Core Framework & Language
|
||||
|
||||
- [**Next.js**](https://nextjs.org/) - React framework with App Router
|
||||
- [**React**](https://react.dev/) - UI library for building user interfaces
|
||||
- [**TypeScript**](https://www.typescriptlang.org/) - Typed JavaScript for better developer experience
|
||||
|
||||
### Styling & UI Components
|
||||
|
||||
- [**Tailwind CSS**](https://tailwindcss.com/) - Utility-first CSS framework
|
||||
- [**shadcn/ui**](https://ui.shadcn.com/) - Re-usable components built with Radix UI and Tailwind CSS
|
||||
- [**Radix UI**](https://www.radix-ui.com/) - Headless UI components for accessibility
|
||||
- [**Lucide React**](https://lucide.dev/guide/packages/lucide-react) - Beautiful & consistent icons
|
||||
- [**Framer Motion**](https://motion.dev/) - Animation library for React
|
||||
|
||||
### Development & Testing
|
||||
|
||||
- [**Storybook**](https://storybook.js.org/) - Component development environment
|
||||
- [**Playwright**](https://playwright.dev/) - End-to-end testing framework
|
||||
- [**ESLint**](https://eslint.org/) - JavaScript/TypeScript linting
|
||||
- [**Prettier**](https://prettier.io/) - Code formatting
|
||||
|
||||
### Backend & Services
|
||||
|
||||
- [**Supabase**](https://supabase.com/) - Backend-as-a-Service (database, auth, storage)
|
||||
- [**Sentry**](https://sentry.io/) - Error monitoring and performance tracking
|
||||
|
||||
### Package Management
|
||||
|
||||
- [**pnpm**](https://pnpm.io/) - Fast, disk space efficient package manager
|
||||
- [**Corepack**](https://github.com/nodejs/corepack) - Node.js package manager management
|
||||
|
||||
### Additional Libraries
|
||||
|
||||
- [**React Hook Form**](https://react-hook-form.com/) - Forms with easy validation
|
||||
- [**Zod**](https://zod.dev/) - TypeScript-first schema validation
|
||||
- [**React Table**](https://tanstack.com/table) - Headless table library
|
||||
- [**React Flow**](https://reactflow.dev/) - Interactive node-based diagrams
|
||||
|
||||
Reference in New Issue
Block a user