{"id":21414828,"url":"https://github.com/edward-ly/quasar-electron-template","last_synced_at":"2026-05-13T07:40:22.160Z","repository":{"id":87922448,"uuid":"384644011","full_name":"edward-ly/quasar-electron-template","owner":"edward-ly","description":"A minimal Quasar project that can build and release a cross-platform desktop app with GitHub Actions.","archived":false,"fork":false,"pushed_at":"2021-07-10T10:37:17.000Z","size":573,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-23T05:26:16.614Z","etag":null,"topics":["electron","electron-app","electron-builder","electron-vue","electronjs","github-actions","quasar","quasar-framework","template","template-project","template-repository"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edward-ly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-07-10T08:00:47.000Z","updated_at":"2023-08-03T22:06:51.000Z","dependencies_parsed_at":"2024-01-16T18:58:49.928Z","dependency_job_id":"5d52a127-e611-401d-8787-5a1161917e50","html_url":"https://github.com/edward-ly/quasar-electron-template","commit_stats":null,"previous_names":[],"tags_count":1,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward-ly%2Fquasar-electron-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward-ly%2Fquasar-electron-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward-ly%2Fquasar-electron-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edward-ly%2Fquasar-electron-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edward-ly","download_url":"https://codeload.github.com/edward-ly/quasar-electron-template/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243911272,"owners_count":20367651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["electron","electron-app","electron-builder","electron-vue","electronjs","github-actions","quasar","quasar-framework","template","template-project","template-repository"],"created_at":"2024-11-22T18:33:56.061Z","updated_at":"2026-05-13T07:40:17.116Z","avatar_url":"https://github.com/edward-ly.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Quasar Electron App Template\n\nA minimal cross-platform desktop app built with [Electron](https://www.electronjs.org/) via the [Quasar Framework](https://quasar.dev/).\nIncludes a basic CI/CD pipeline via GitHub Actions and GitHub Releases, as well as automatic updates via [electron-updater](https://yarn.pm/electron-updater).\n\n## Tutorial\n\nTo reproduce this repository from scratch for yourself, you can follow the instructions below.\n\n### Prerequisites\n\nInstall the latest LTS version of [Node.js](https://nodejs.org/en/).\nI also recommend installing [Yarn](https://yarnpkg.com/) for package management.\n\n```bash\nnpm install -g yarn\n```\n\nThen, install the Quasar CLI.\n\n```bash\nyarn global add @quasar/cli\n# or\nnpm install -g @quasar/cli\n```\n\n### Create a New Quasar Project\n\nFor this template app, all default options were selected when creating the project.\n\n```bash\nquasar create quasar-electron-template\ncd quasar-electron-template\n```\n\nIf you want to initialize Git and commit the project at this point, make sure to also specify the remote repository, which is required for Quasar to build the app.\n\n```bash\ngit init\ngit add -A\ngit commit -m \"Initial Quasar project\"\ngit branch -M master # if the default branch is not master\ngit remote add origin git@github.com:edward-ly/quasar-electron-template.git # required\ngit push -u origin master\ngit checkout -b develop # create a separate branch for development\n```\n\n### Edit Quasar Configuration\n\nOpen `quasar.conf.js` and make the following changes to the `electron` options object:\n\n-   Replace `'packager'` with `'builder'` as the value of the `bundler` property (since we are using `electron-builder` to build the app).\n-   In the configuration object for the `builder` property, add the following lines:\n\n```js\nwin: {\n  target: [\n    {\n      target: 'nsis',\n      arch: ['x64', 'arm64', 'ia32']\n    }\n  ]\n},\nmac: {\n  target: [\n    {\n      target: 'dmg',\n      arch: ['x64', 'arm64']\n    }\n  ]\n},\nlinux: {\n  target: [\n    {\n      target: 'AppImage',\n      arch: ['x64', 'arm64', 'ia32', 'armv7l']\n    }\n  ]\n},\npublish: {\n  provider: 'github'\n}\n```\n\nNow create a test build for the app.\nThis will also enable Electron mode for the project, adding Electron-specific dependencies and source code.\n\n```bash\nquasar build -m electron\n```\n\n### Add Automatic Updates\n\nInstall `electron-updater` as an app dependency.\n\n```bash\nyarn add electron-updater\n```\n\nOpen `src-electron/electron-main.js` and make the following changes:\n\n```js\n// Add the following line near the top of the file\nimport { autoUpdater } from 'electron-updater'\n\n// Replace this line ...\napp.on('ready', createWindow)\n// ... with this code\napp.on('ready', () =\u003e {\n  autoUpdater.checkForUpdatesAndNotify()\n  createWindow()\n})\n```\n\n### Configure GitHub Actions\n\n#### From Quasar\n\nAdd the following scripts to `package.json`:\n\n```json\n\"build\": \"quasar build -m electron -P never\",\n\"release\": \"quasar build -m electron -P onTagOrDraft\",\n```\n\nCreate a new file in `.github/workflows/main.yml` with the following code:\n\n```yml\nname: build\n\non:\n  push:\n    branches:\n      - master\n      - develop\n  pull_request:\n    branches:\n      - develop\n\njobs:\n  build:\n    runs-on: ${{ matrix.os }}\n    strategy:\n      matrix:\n        os:\n          - windows-latest\n          - macos-latest\n          - ubuntu-latest\n      max-parallel: 1\n      fail-fast: false\n    steps:\n      - name: Clone repository\n        uses: actions/checkout@v2\n      - name: Setup Node\n        uses: actions/setup-node@v2\n        with:\n          node-version: 14.x # use the latest LTS version of Node\n      - name: Install dependencies\n        run: yarn --frozen-lockfile\n      - name: Build app\n        if: github.ref != 'refs/heads/master'\n        run: yarn build\n      - name: Build \u0026 deploy app\n        if: github.ref == 'refs/heads/master'\n        env:\n          GH_TOKEN: ${{ secrets.GH_TOKEN }}\n        run: yarn release\n```\n\n#### From GitHub\n\n1.  From your GitHub account settings, go to **Developer settings \u003e Personal access tokens** and click **Generate new token**.\n2.  Give the new token a name, but more importantly, check the `repo` box to enable repository access for the token.\n    Then click **Generate token** and copy the value of the new token.\n3.  From the project repository settings, go to **Secrets** and click **New repository secret**.\n    Type `GH_TOKEN` into the name field, and paste the value of the personal access token into the value field, then click **Add secret**.\n\n## Continuous Workflow\n\nAfter the above steps are taken, GitHub Actions will automatically build the app for all platforms each time you push new commits to the repository (or a pull request targeting the `develop` branch is created).\nIf new commits are pushed to the `master` branch, GitHub Actions will also upload the artifacts to GitHub Releases where the app will be ready for publishing.\n\n#### Recommended Steps\n\nThe following steps are taken from [the default `electron-builder` workflow](https://www.electron.build/configuration/publish#recommended-github-releases-workflow), but modified to accommodate Git branching development models such as [this one](https://nvie.com/posts/a-successful-git-branching-model/).\n\n1.  [Draft a new release](https://help.github.com/articles/creating-releases/).\n    Set the \"Tag version\" to some version after the current `version` in your application `package.json`, and prefix it with `v`.\n    Make sure the tag targets the `master` branch.\n    \"Release title\" can be anything you want.\n2.  Push some commits to the `develop` branch.\n    Each successful CI build confirms that the app can be compiled on all platforms.\n3.  Create a release branch, add some commits that will prepare the app for release (e.g. increasing the `version` in `package.json`), then merge the release branch into `master`.\n4.  Push the new commits to the `master` branch.\n    Confirm that the artifacts from this CI build have been uploaded to the release draft.\n4.  Add a description (preferably release notes) to the release, and publish the release.\n5.  Merge the release branch back into `develop`, and delete the release branch.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedward-ly%2Fquasar-electron-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedward-ly%2Fquasar-electron-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedward-ly%2Fquasar-electron-template/lists"}