@docyrus/cli
Version:
DocyUI unified CLI tool for all frameworks
149 lines (106 loc) • 3.11 kB
Markdown
# @docyrus/cli
DocyUI unified CLI tool for managing components across multiple frameworks.
## Installation
```bash
npm install -g /cli
# or
pnpm add -g /cli
```
## Usage
### End User Commands
Initialize project setup:
```bash
npx /cli --framework react init
npx /cli --framework vue init
npx /cli --framework svelte init
npx /cli --framework react-native init
```
Add components to your project:
```bash
npx /cli --framework react add button
npx /cli --framework vue add button
npx /cli --framework svelte add button
npx /cli --framework react-native add button
```
### Maintainer Commands
These commands are for DocyUI maintainers to generate packages for NPM publishing:
#### Individual Component Packages
Create individual NPM packages for each component (e.g., ` /react-button`, ` /vue-accordion`):
```bash
# React individual packages (@docyrus/react-*)
pnpm --filter /cli create:individual:react
# Vue individual packages (@docyrus/vue-*)
pnpm --filter /cli create:individual:vue
# Svelte individual packages (@docyrus/svelte-*)
pnpm --filter /cli create:individual:svelte
# React Native individual packages (@docyrus/rn-*)
pnpm --filter /cli create:individual:rn
# Default (React)
pnpm --filter /cli create:individual
```
#### Monolithic Packages
Create all-in-one packages containing all components (e.g., ` /react`, ` /vue`):
```bash
# React monolithic package (@docyrus/react)
pnpm --filter /cli create:monolithic:react
# Vue monolithic package (@docyrus/vue)
pnpm --filter /cli create:monolithic:vue
# Svelte monolithic package (@docyrus/svelte)
pnpm --filter /cli create:monolithic:svelte
# React Native monolithic package (@docyrus/react-native)
pnpm --filter /cli create:monolithic:rn
# Default (React)
pnpm --filter /cli create:monolithic
```
## Package Structure
### Individual Packages
Each component is published as a separate NPM package:
**React:**
- ` /react-accordion` - Accordion component
- ` /react-button` - Button component
- ` /react-card` - Card component
- etc.
**Usage:**
```javascript
import { DocyAccordion } from "@docyrus/react-accordion"
import { DocyButton } from "@docyrus/react-button"
```
**Vue:**
- ` /vue-accordion`
- ` /vue-button`
- etc.
**Svelte:**
- ` /svelte-accordion`
- ` /svelte-button`
- etc.
**React Native:**
- ` /rn-accordion`
- ` /rn-button`
- etc.
### Monolithic Packages
All components bundled in framework-specific packages:
**React:**
```javascript
import { DocyAccordion } from "@docyrus/react/docy-accordion"
import { DocyButton } from "@docyrus/react/docy-button"
```
**Vue:**
```javascript
import { DocyAccordion } from "@docyrus/vue/docy-accordion"
```
## Development
```bash
# Build CLI
pnpm build
# Lint
pnpm lint
# Type check
pnpm type-check
```
## Supported Frameworks
- React (18+)
- Vue (3+)
- Svelte (4+)
- React Native (0.70+)
## License
MIT