First, thanks for being interested in contributing on this project!
Before starting, ensure your machine is having:
Node >= 18
pnpm >= 8
Fork Vexip UI and clone to your local machine and install dependencies:
pnpm install # pnpm i
Then you need to build once the packages under common
(IMPORTANT):
pnpm run build:common
We use a Vite project in dev-server
a development server.
You can use the following command to start development server for specific component:
pnpm run serve [component]
After the server is successfully started, the demos of the components specified under docs/demos
will be used as development cases.
The development server uses 8008
port and Chinese demos by default, you can add -p
and -l
parameters to the command to specify the port and language respectively:
pnpm run serve [component] -p [port] -l [language]
We use VitePress as the documentation framework. You can start it locally with the following command:
pnpm run serve:docs
You can quickly create a new component using template files:
pnpm run create [component]
Wait patiently for the files to be created, then you can check the files in the following locations:
components/[component]/index.ts
components/[component]/props.ts
components/[component]/css.ts
components/[component]/style.ts
components/[component]/[component].vue
components/[component]/tests/ssr.spec.tsx
components/[component]/tests/[component].spec.tsx
docs/demos/[component]/basis/demo.en-US.vue
docs/demos/[component]/basis/demo.zh-CN.vue
docs/en-US/component/[component].md
docs/zh-CN/component/[component].md
style/[component].scss
In addition to the above template files, we also have some file name conventions:
components/[component]/symbol.ts
is used to define types and some common constants and variablescomponents/[component]/helpers.ts
is used to define some dedicated helper methodscomponents/[component]/hooks.ts
is used to define some dedicated hook methods
After confirming, you can execute the bootstrap command:
pnpm run bootstrap
After finished, you can start developing the component and its documentation.