This application makes use of the core JS/CSS/HTML code found in the web repo. For issues related to the actual app experience, please post issues in the web repo.
Make sure Yarn is installed on your system.
yarn setup
yarn build:web # Or `yarn dev:web`
yarn dev
# In another terminal
yarn start
We use commitlint to validate commit messages. Before making a pull request, make sure to check the output of the following commands:
yarn lint
yarn test # Make sure to start `yarn dev` before running the tests, and quit any running Standard Notes applications so they don't conflict.
Pull requests should target the develop
branch.
To determine where to install a dependency:
- If it is only required for building, install it in
package.json
'sdevDependencies
- If it is required at runtime but can be packaged by webpack, install it in
package.json
'sdependencies
. - If it must be distributed as a node module (not packaged by webpack), install it in
app/package.json
'sdependencies
- Also make sure to declare it as an external commonjs dependency in
webpack.common.js
.
- Also make sure to declare it as an external commonjs dependency in
Build for all platforms:
yarn release
Building arm64 releases on amd64 systems is only possible with AppImage, Debian and universal "dir" targets.
Building arm64 releases natively on arm64 systems requires some additional preparation:
export npm_config_target_arch=arm64
export npm_config_arch=arm64
A native fpm
installation is needed for Debian builds. fpm
needs to be available in $PATH
, which can be achieved by running
gem install fpm --no-document
and making sure $GEM_HOME/bin
is added to $PATH
.
Snap releases also require a working snapcraft / snapd
installation.
Building can then be done by running:
yarn setup
Followed by
node scripts/build.mjs deb-arm64
On Linux, download the latest AppImage from the Releases page, and give it executable permission:
chmod u+x standard-notes*.AppImage