This repository employs a monorepo setup with pnpm workspaces, and hosts a number of associated but separated packages.
- The
pluginsdirectory contains all the official plugins. - The
themesdirectory contains all the official themes.
Pre-requirement:
Clone the repo, and install dependencies:
pnpm installBuild source code:
pnpm run bundleRun unit tests:
pnpm run testMain tools that used in this project:
- TypeScript as the development language
- Vitest for unit testing
- OxLint + Oxfmt for code linting and formatting
The bundle script uses tsdown to compile TypeScript source files to JavaScript dist files.
Also, it will copy necessary resources from source directory to dist directory, because some source files (e.g. .vue, .css files) would not be processed by tsc, but should keep the same relative path in the dist directory.
You may need to run this script first after your clone this repository, because the dist files are ignored by .gitignore.
The clean script runs clean script in all packages, cleaning all the dist files and caches. In other words, it will remove all the files that generated by bundle script.
It's used before you want to re-build source files from a clean / initial state.
The format script uses oxfmt to format all source files.
The lint script uses OxLint to check all source files.
The test script uses Vitest to run unit testings.