mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 20:38:52 +00:00
114 lines
1.7 KiB
Markdown
114 lines
1.7 KiB
Markdown
# AFFiNE Monorepo Cli
|
|
|
|
## Start
|
|
|
|
```bash
|
|
yarn affine -h
|
|
```
|
|
|
|
### Run build command defined in package.json
|
|
|
|
```bash
|
|
yarn affine i18n build
|
|
# or
|
|
yarn build -p i18n
|
|
```
|
|
|
|
### Run dev command defined in package.json
|
|
|
|
```bash
|
|
yarn affine web dev
|
|
# or
|
|
yarn dev -p i18n
|
|
```
|
|
|
|
### Clean
|
|
|
|
```bash
|
|
yarn affine clean --dist --rust
|
|
# clean node_modules
|
|
yarn affine clean --node-modules
|
|
```
|
|
|
|
### Init
|
|
|
|
> Generate files that make the monorepo work properly, the per project codegen will not be included anymore
|
|
|
|
```bash
|
|
yarn affine init
|
|
```
|
|
|
|
## Tricks
|
|
|
|
### Define scripts to run a .ts files without `--loader ts-node/esm/transpile-only`
|
|
|
|
`affine run` will automatically inject `ts-node`'s transpile service(swc used) for your scripts
|
|
|
|
```json
|
|
{
|
|
"name": "@affine/demo"
|
|
"scripts": {
|
|
"dev": "node ./dev.ts"
|
|
}
|
|
}
|
|
```
|
|
|
|
```bash
|
|
affine @affine/demo dev
|
|
```
|
|
|
|
### Short your key presses
|
|
|
|
```bash
|
|
# af is also available for running the scripts
|
|
yarn af web build
|
|
```
|
|
|
|
#### by custom shell script
|
|
|
|
> personally, I use 'af'
|
|
|
|
create file `af` in the root of AFFiNE project with the following content
|
|
|
|
```bash
|
|
#!/usr/bin/env sh
|
|
./tools/scripts/bin/runner.js affine.ts $@
|
|
```
|
|
|
|
or on windows:
|
|
|
|
```cmd
|
|
node "./tools/cli/bin/runner.js" affine.ts %*
|
|
```
|
|
|
|
and give it executable permission
|
|
|
|
```bash
|
|
chmod a+x ./af
|
|
|
|
# now you can run scripts with simply
|
|
./af web build
|
|
```
|
|
|
|
if you want to go further, but for vscode(or other forks) only, add the following to your `.vscode/settings.json`
|
|
|
|
```json
|
|
{
|
|
"terminal.integrated.env.osx": {
|
|
"PATH": "${env:PATH}:${cwd}"
|
|
},
|
|
"terminal.integrated.env.linux": {
|
|
"PATH": "${env:PATH}:${cwd}"
|
|
},
|
|
"terminal.integrated.env.windows": {
|
|
"PATH": "${env:PATH};${cwd}"
|
|
}
|
|
}
|
|
```
|
|
|
|
restart all the integrated terminals and now you get:
|
|
|
|
```bash
|
|
af web build
|
|
```
|