This is a guide on creating Logseq development environment on Windows with PowerShell
. Non-platform specific instructions like Develop Logseq should also be referenced.
- Ensure
Set-ExecutionPolicy Unrestricted
(or other equivalent) - Good network connection. Here's An example of setting up proxy in PowerShell
- Node.js 18.x
- Clojure (follow this Guidance)
- JRE 8 (required for Clojure)
- Visual Studio (required for desktop app)
(updated 20230221. May confirm via JAVA_VERSION and NODE_VERSION in THIS FILE)
- Install Chocolatey
- Install JRE (only x64, x32 will not work)
- Install NVM for Windows, Node.js, and Yarn
choco install nvm nvm install 18.12.0 (or whatever version) nvm use 18.12.0 npm install -g yarn nvm use 18.12.0
- Install clj-on-windows
Congrats! The pre-requisites are ready.
The basic idea is replacing the clojure
commands in package.json to clj
.
Go to your cloned Logseq repo. Then install dependencies, execute the clj
equivalent of yarn watch
. Refer THIS if you want to setup proxy in PowerShell
.
-
Copy files in
resources
tostatic
-
Compile static assets(css, icons...)
yarn add --dev gulp yarn yarn gulp:watch
-
Open another powershell window, and run
yarn cljs:watch
. Clojure CLI will pull dependencies from Maven and Clojars, build the app and start the development server. Refer THIS if your network access to Maven and Clojars is unstable.
Now you can access the app via http://localhost:3001
and all changes to the code will be watched.
To run the desktop app in development mode, after setting up web app development environment, run following commands which are equivalent to yarn dev-electron-app
:
cd static
yarn
yarn electron:dev
The desktop app should pop-up on your screen.
During the build process node-gyp
may complain that it cannot find Visual Studio. Try building the app in Developer Powershell for VS(shipped with Visual Studio). If this does not work for you, This issue may be helpful.
$env:GLOBAL_AGENT_HTTPS_PROXY='http://<proxy-host>:<proxy-port>'
$env:ELECTRON_GET_USE_PROXY='true'
$env:HTTPS_PROXY='http://<proxy-host>:<proxy-port>'
$env:HTTP_PROXY='http://<proxy-host>:<proxy-port>'
add the following pair to deps.edn
:
:mvn/repos {
"central" {:url "https://maven.aliyun.com/repository/public"}
"clojars" {:url "https://mirrors.tuna.tsinghua.edu.cn/clojars"}
}
The mirrors above are friendly to Chinese developers(with bad network), developers with self-hosted repositories can use their own services.