mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-09-07 01:09:54 +08:00
chore: add monorepo tools (#9196)
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
# 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
|
||||
```
|
||||
Reference in New Issue
Block a user