9a3e7a2f50
- switch root package manager to pnpm 10.33.4 via packageManager field - add .npmrc with node-linker=hoisted for RN/Expo compatibility - convert yarn resolutions to pnpm.overrides; pin psl@1.9.0 and @types/psl@1.1.1 to keep types resolving under exports-aware resolution - pin react-compiler-runtime and babel-plugin-react-compiler to real rc.3 (the deprecated "Wrong version name was published" tag would otherwise resolve) - add pnpm.onlyBuiltDependencies allowlist for @sentry/cli, core-js-pure, esbuild, unrs-resolver - regenerate pnpm-lock.yaml; delete yarn.lock; drop postinstall-postinstall - update all workflows, Dockerfile, Dockerfile.embedr (root-level), Makefile, conductor.json; bskyembed/bskylink/bskyogcard/dev-env stay on yarn - update docs (CLAUDE.md, docs/build.md, docs/testing.md, docs/localization.md, bskyweb/README.md, scripts/push-notification/README.md, BlueskyClip/README.md) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
46 lines
966 B
Markdown
46 lines
966 B
Markdown
## Build / Develop
|
|
|
|
### SPA Bundle (monolithic static javascript file)
|
|
|
|
To build the SPA bundle (`bundle.web.js`), first get a JavaScript development
|
|
environment set up. Either follow the top-level README, or something quick
|
|
like:
|
|
|
|
```bash
|
|
# install nodejs
|
|
nvm install
|
|
nvm use
|
|
npm install --global pnpm
|
|
|
|
# setup tools and deps (in top level of this repo)
|
|
pnpm install --frozen-lockfile
|
|
|
|
# run pnpm web dev server, if you wanted
|
|
pnpm web
|
|
```
|
|
|
|
Then build and copy over the big 'ol `bundle.web.js` file:
|
|
|
|
|
|
```bash
|
|
# in the top level of this repo
|
|
pnpm build-web
|
|
```
|
|
|
|
### Golang Daemon
|
|
|
|
Install golang. We generally develop against the current stable release of the language, as declared in `go.mod`.
|
|
|
|
In this directory (`bskyweb/`):
|
|
|
|
```bash
|
|
# re-build and run daemon
|
|
go run ./cmd/bskyweb serve
|
|
|
|
# build and output a binary
|
|
go build -o bskyweb ./cmd/bskyweb/
|
|
```
|
|
|
|
The easiest way to configure the daemon is to copy `example.env` to `.env` and
|
|
fill in auth values there.
|