Development Setup
This page is for contributors working on the GJSify monorepo itself. If you just want to use GJSify in your own project, head to Getting Started instead.
Prerequisites
Section titled “Prerequisites”- GJS 1.86+ (GNOME 49+)
- Node.js 24+ (only for
node:runtime parity testing; not required for install/build/publish) - GNOME development libraries:
glib2-devel,gobject-introspection-devel,gtk4-devel,libsoup3-devel,vala,blueprint-compiler
On Fedora:
sudo dnf install gjs gtk4-devel glib2-devel gobject-introspection-devel libsoup3-devel vala blueprint-compilerPhase D.7d retired the yarn dependency. The monorepo bootstraps via the committed
packages/infra/cli/dist/cli.gjs.mjsGJS bundle — no yarn, no Corepack, no Node-only npm CLI needed on a fresh checkout.
Clone and build
Section titled “Clone and build”git clone https://github.com/gjsify/gjsify.gitcd gjsify
# Install dependencies via the committed GJS bundle (no yarn / Node required)gjs -m packages/infra/cli/dist/cli.gjs.mjs install --immutable
# From here on, `gjsify` is on $PATH via node_modules/.binPATH="$PWD/node_modules/.bin:$PATH"
# Build all packagesgjsify run build
# Run the full test suite on Node.js and GJSgjsify run testCommon commands
Section titled “Common commands”gjsify run build # Build every workspace packagegjsify run build:node # Only the Node.js targetsgjsify run build:web # Only the Web API targetsgjsify run check # Type-check all packagesgjsify run test # Run tests on Node.js and GJSgjsify run clear # Remove all build outputsPer-package workflows follow the same pattern:
cd packages/node/fsgjsify run build:gjsify # Build the packagegjsify run build:test:gjs # Build the GJS test bundlegjsify run test:gjs # Run tests under GJSgjsify run test:node # Run the same tests under Node.jsNext steps
Section titled “Next steps”- Architecture — monorepo structure, build system and GNOME library mappings
- TDD Workflow — how to port a new Node.js or Web API to GJS test-first