Files
AFFiNE-Mirror/tools/cli/README.md
DarkSky 046e126054 feat: bump typescript (#14507)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
  * Upgraded TypeScript toolchain to v5.9.3 across packages and tooling.
* Removed legacy ts-node and migrated developer tooling to newer
runtimes (tsx/SWC) where applicable.
* **Documentation**
* Updated developer CLI docs and runtime behavior notes to reflect the
new loader/runtime for running TypeScript files; no changes to public
APIs or end-user behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-24 13:22:46 +08:00

132 lines
1.9 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 manually wiring a TypeScript loader
`affine run` will automatically inject `tsx` for your scripts
```json
{
"name": "@affine/demo",
"scripts": {
"dev": "node ./dev.ts"
}
}
```
```bash
affine @affine/demo dev
```
or
```json
{
"name": "@affine/demo",
"scripts": {
"dev": "r ./src/index.ts"
},
"devDependencies": {
"@affine-tools/cli": "workspace:*"
}
}
```
### 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
```
```
```