Untitled

mail@pastecode.io avatar
unknown
javascript
2 years ago
1.5 kB
5
Indexable
import { rmSync } from 'fs';
import { join } from 'path';
import { builtinModules } from 'module';
import { fileURLToPath, URL } from 'url';
import { defineConfig } from 'vite-plugin-electron';

import pkg from './package.json';

import vue from '@vitejs/plugin-vue';
import electron from 'vite-plugin-electron';

const electronConfig = {
  main: {
    entry: 'electron/main/index.js',
    vite: {
      build: {
        sourcemap: false,
        outDir: 'dist/electron/main',
        rollupOptions: {
          external,
        },
      },
    },
  },
  preload: {
    input: {
      // You can configure multiple preload here
      index: join(__dirname, 'electron/preload/index.js'),
    },
    vite: {
      build: {
        // For debug
        sourcemap: 'inline',
        outDir: 'dist/electron/preload',
        rollupOptions: {
          external,
        },
      },
    },
  }
  //https://github.com/electron-vite/vite-plugin-electron/tree/main/packages/electron-renderer
};

const dependencies = Object.keys(pkg.dependencies || {});

const external = [
  'electron',
  ...builtinModules,
  // (🎯-①): For use Node.js package in Electron-Main, Preload-Script
  ...dependencies,
];

rmSync('dist', { recursive: true, force: true }); // v14.14.0

export default defineConfig({
  plugins: [vue(), electron(electronConfig)],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
      
    },
  },
});