3.0 KiB
Develop Logseq
Requirements
- Node.js (See build.yml for allowed version) & Yarn
- Java & Clojure. (If you run into
Execution error (FileNotFoundException) at java.io.FileInputStream/open0 (FileInputStream.java:-2). -M:cljs (No such file or directory), it means you have a wrong Clojure version installed. Please uninstall it and follow the instructions linked.)
Clone project
This is a required step before doing any development or production builds.
git clone https://github.com/logseq/logseq
cd logseq
Browser development
Development
yarn
yarn watch
Then open the browser http://localhost:3001.
REPL setup
VSCode + Calva
With yarn watch running, it should prints shadow-cljs - nREPL server started on port 8701
You may connect to the nREPL server with:
cmd + shift + p -> Calva: Connect to a Running REPL Server in the Project -> logseq -> shadow-cljs->:app ->localhost:8701
(change :app to :electron if you want to connect to the main thread of the Electron app)
Open a dev environment (Browser dev app on localhost:3000 or Desktop dev app), then you can play REPL on the current editing file:
cmd + shift + p -> Calva: Load/Evaluate Current File and its Requires/Dependencies
Connect to the web-worker context
Emacs + Cider
When connecting to a CLJ nrepl (NOTE: if you are already in a CLJS nrepl, use :cljs/quit to go back to CLJ nrepl),
you may run (shadow.user/worker-repl), or use (shadow/nrepl-select :app {:runtime-id <id-num>}) to connect to a web-worker context.
Tip
you can find the
<id-num>in http://localhost:9630/runtimes
VSCode
;; TODO
Production Build
yarn release
The released files will be at static/ directory.
Desktop app development
Development
- Install npm packages for building the desktop app
yarn install
cd static
yarn install
cd ..
- Compile to JavaScript and open the dev app
yarn watch
# Wait until watch reports `Build Completed.` for `:electron` and `:app`.
# Then, run the following command in a different shell.
# If you have opened desktop logseq, you should close it. Otherwise, this command will fail.
yarn dev-electron-app
Alternatively, run bb dev:electron-start to do this step with one command. To
download bb, see https://github.com/babashka/babashka#installation.
- (Optional) Update dependencies if
resources/package.jsonhas changed since the last time you used dev Logseq.
# pull new changes
git pull
cd static && yarn install && cd ..
Here static/ is generated by yarn watch command.
Production Build
Build a release:
yarn release-electron
The final released binaries or installers will be at static/out/.