This is a monorepo for the components of Vue Interface. Components are organized in packages. The purpose of this monorepo is to provide a convenient and efficient way to develop and maintain UI components that are dependent on each other without relying on symlinks and other hacks that provide less than optimal development experiences. The goal is provide a collection of CLI tools so you can develop, version and publish for individual packages all from the root of the repo. The monorepo also utilizes VitePress for clean documentation.
We prefer pnpm, but you can use npm or yarn to install too.
pnpm i vue-interfaceTo start developing in the monorepo run the following commands. pnpm install should be ran the first time, after any package.json updates or when adding another package.
pnpm install
pnpm devThis monorepo utilizes VitePress for detailed documentation. To open, ensure you are in the root directory, then run:
pnpm docs:devThis will open VitePress on localhost:5173.
Each package is independently versioned using strict semantic versioning. The monorepo uses Changesets to manage versions and changelogs for all packages independently. When a package introduces a change, only that package receives a version bump and other packages remain unaffected.
After making changes to one or more packages, create a changeset to document what changed:
::: code-group
pnpm changesetyarn changeset:::
This interactive command will:
- Ask which packages changed - Select the packages you modified (use spacebar to select, enter to confirm)
- Ask for version bump type - Choose the semantic version bump for each package:
- major - Breaking changes (e.g., removing a prop, changing API)
- minor - New features (e.g., adding a new prop, new functionality)
- patch - Bug fixes (e.g., fixing a rendering issue)
- Ask for a summary - Write a brief description of the change (this appears in the changelog)
🦋 Which packages would you like to include?
◉ @vue-interface/input-field ← Select this package (press space)
◯ @vue-interface/btn
◯ @vue-interface/form-control
🦋 What kind of change is this for @vue-interface/input-field?
major (breaking change)
minor (new feature)
❯ patch (bug fix) ← Select this option (press space)
🦋 Please enter a summary:
Fix styling error when input is disabledThe Changesets CLI then generates a markdown file in the .changeset/ directory with a random name (e.g., cool-lions-dance.md).
MIT License. See LICENSE for more information.