Co-authored-by: Himself65 <himself65@outlook.com>
2.6 KiB
Building AFFiNE Web
Note
For developing & building desktop client app, please refer to building-desktop-client-app.md
Table of Contents
Prerequisites
We suggest develop our product under node.js LTS(Long-term support) version
Option 1: Manually install node.js
install Node LTS version
Up to now, the major node.js version is 18.x
Option 2: Use node version manager
install nvm
nvm install 18
nvm use 18
Setup Environment
This setup requires modern yarn (currently 3.x
), run this if your yarn version is 1.x
Reference: Yarn installation doc
corepack enable
corepack prepare yarn@stable --activate
# install dependencies
yarn install
Start Development Server
Option 1: Local OctoBase
# Run OctoBase container in background
docker pull ghcr.io/toeverything/cloud-self-hosted:nightly-latest
docker run --env=SIGN_KEY=test123 --env=RUST_LOG=debug --env=JWST_DEV=1 --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --workdir=/app -p 127.0.0.1:3000:3000 --runtime=runc -d ghcr.io/toeverything/cloud-self-hosted:nightly-latest
# Run AFFiNE Web in development mode
yarn dev:local
Option 2: Remote OctoBase
yarn dev
you might need set environment variables in .env.local
file.
See our template.
Then, the playground page should work at http://localhost:8080/
For more details, see apps/web/README.md
Testing
Local OctoBase is required for testing. Otherwise, the affine part of the tests will fail.
Adding test cases is strongly encouraged when you contribute new features and bug fixes.
We use Playwright for E2E test, and vitest for unit test.
To test locally, please make sure browser binaries are already installed via npx playwright install
.
Also make sure you have built the @affine/web
workspace before running E2E tests.
yarn build
# run tests in headless mode in another terminal window
yarn test
Troubleshooting
I ran
yarn start -p 8080
afteryarn build
but the index page returned 404.
Try stopping your development server (initialized by yarn dev:local
or something) and running yarn build
again.