Repository navigation
Development
Note: the two main entry points are src/kc_electron and src/kc_angular. Browser extensions can be found in src/kc_extension but are experimental.
- Make sure you have Node, NPM, and Yarn installed. The following versions were used at the time of this writing:
After installing Node.js and Yarn, clone the repo and run the following commands (from the repo root directory) to ensure you have the correct Yarn plugins.
- Install node modules using the following command:
yarn set version berry
yarn plugin import typescript
yarn plugin import workspace-tools
yarn installNote: the contents of the file .yarnrc.yml should be the following:
nodeLinker: node-modules
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-typescript.cjs
spec: "@yarnpkg/plugin-typescript"
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
spec: "@yarnpkg/plugin-workspace-tools"
yarnPath: .yarn/releases/yarn-3.1.1.cjsHowever, it has been pointed out that there are issues with Yarn that cause the build to fail. The best way to get around this issue is to remove the original .yarnrc.yml, run the above commands, then prepend the line nodeLinker: node-modules before running yarn install. This is a temporary workaround.
- Build and run the project:
yarn build
yarn start- (OPTIONAL) clean the project and delete build files:
yarn clean- (OPTIONAL) purge dependencies and clear caches:
yarn purgeThis will allow you to refresh the application and see changes in real-time, without having to recompile Electron and Angular code (the watchers auto-compile as files are changed/saved).
- Follow steps 1-2 above
- Build, run, and watch the project:
yarn watch-main-dev &
yarn watch-electron-dev &
yarn start &- Note: changes made to Electron require you to restart the app
You can also choose to run yarn watch-main and yarn watch-electron (without the -dev), but they will take longer to transpile and build, and no source map will be produced.
- Clean and reinstall dependencies, then build the project:
yarn clean
yarn purge
yarn install
yarn build- Create the distributables:
yarn dist-all