Skip to main content
Version: old

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.

npm init 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 %}