Skip to content

Latest commit

 

History

History
102 lines (70 loc) · 2 KB

File metadata and controls

102 lines (70 loc) · 2 KB
description
How to create an Electron app with Vue and Electron Forge

Vue 3

Vue 3 can be added to Electron Forge's Vite template with a few setup steps.

{% hint style="info" %}

The following guide has been tested with Vue 3 and Vite 4.

{% endhint %}

Setting up the app

Create an Electron app using Electron Forge's Vite template.

npx create-electron-app@latest my-vue-app --template=vite

Adding dependencies

Add the vue npm package to your dependencies and the @vitejs/plugin-vue package to your devDependencies:

npm install vue
npm install --save-dev @vitejs/plugin-vue

Integrating Vue 3 code

You should now be able to start using Vue components in your Electron app. The following is a very minimal example of how to start to add Vue 3 code:

{% tabs %} {% tab title="src/index.html" %}

Replace the contents of src/index.html with a <div> element with the #app id attribute.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Hello World!</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/renderer.js"></script>
  </body>
</html>

{% endtab %}

{% tab title="src/App.vue" %}

Add the contents from the template back to src/App.vue.

<template>
  <h1>💖 Hello World!</h1>
  <p>Welcome to your Electron application.</p>
</template>

<script setup>
console.log('👋 This message is being logged by "App.vue", included via Vite');
</script>

{% endtab %}

{% tab title="src/renderer.js" %}

Mount App.vue into the DOM with Vue's createApp API.

import { createApp } from 'vue';
import App from './App.vue';

createApp(App).mount('#app');

{% endtab %}

{% tab title="vite.renderer.config.mjs" %}

Configure the Vue plugin for Vite.js.

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';

// https://vitejs.dev/config
export default defineConfig({
  plugins: [vue()]
});

{% endtab %} {% endtabs %}