34 lines
1.2 KiB
Markdown
34 lines
1.2 KiB
Markdown
# @mintel/cli
|
|
|
|
The Mintel CLI is the primary automation tool for managing the monorepo and ensuring all client websites follow the same high-quality standards and infrastructure patterns.
|
|
|
|
## 🚀 Installation
|
|
|
|
The CLI is intended to be used within the monorepo:
|
|
|
|
```bash
|
|
pnpm install
|
|
```
|
|
|
|
## 🛠 Commands
|
|
|
|
### `init <path>`
|
|
|
|
Scaffolds a new, production-ready client website in the specified path.
|
|
|
|
```bash
|
|
pnpm --filter @mintel/cli start init apps/my-new-website.com
|
|
```
|
|
|
|
#### What it does:
|
|
1. **Project Structure**: Creates a modern Next.js directory layout.
|
|
2. **Shared Configs**: Generates `package.json`, `tsconfig.json`, and `eslint.config.mjs` that extend the `@mintel` shared packages.
|
|
3. **Localization**: Sets up a localized routing structure (`src/app/[locale]`) with `next-intl` pre-configured.
|
|
4. **Error Tracking**: Injects Sentry/GlitchTip instrumentation.
|
|
5. **Environment Safety**: Adds a validation script (`scripts/validate-env.ts`) to catch missing secrets at build time.
|
|
6. **Infrastructure**: Injects the universal `Dockerfile`, `docker-compose.yml`, and the tag-based Gitea Actions deployment workflow.
|
|
|
|
## 🛠 Development
|
|
|
|
To add new features to the scaffold (e.g., new shared files or config templates), modify `packages/cli/src/index.ts`.
|