@wuchuheng/electron
Version:
Electron project template
63 lines (57 loc) • 2.16 kB
text/typescript
import { MakerDeb } from '@electron-forge/maker-deb';
import { MakerRpm } from '@electron-forge/maker-rpm';
import { MakerSquirrel } from '@electron-forge/maker-squirrel';
import { MakerZIP } from '@electron-forge/maker-zip';
import { AutoUnpackNativesPlugin } from '@electron-forge/plugin-auto-unpack-natives';
import { FusesPlugin } from '@electron-forge/plugin-fuses';
import { WebpackPlugin } from '@electron-forge/plugin-webpack';
import type { ForgeConfig } from '@electron-forge/shared-types';
import { FuseV1Options, FuseVersion } from '@electron/fuses';
import { mainConfig } from './webpack.main.config';
import { rendererConfig } from './webpack.renderer.config';
import path from 'path';
const iconDir = path.join(__dirname, 'src/renderer/assets/genLogo');
const config: ForgeConfig = {
packagerConfig: {
icon: path.join(iconDir, 'icon'),
asar: true,
},
rebuildConfig: {},
makers: [
new MakerSquirrel({ setupIcon: path.join(iconDir, 'icon.ico') }),
new MakerZIP({}, ['darwin']),
new MakerRpm({ options: { icon: path.join(iconDir, 'icon.png') } }),
new MakerDeb({ options: { icon: path.join(iconDir, 'icon.png') } }),
],
plugins: [
new AutoUnpackNativesPlugin({}),
new WebpackPlugin({
mainConfig,
renderer: {
config: rendererConfig,
entryPoints: [
{
html: './src/renderer/renderer.html',
js: './src/renderer/renderer.ts',
name: 'main_window',
preload: {
js: './src/preload/preload.ts',
},
},
],
},
}),
// Fuses are used to enable/disable various Electron functionality
// at package time, before code signing the application
new FusesPlugin({
version: FuseVersion.V1,
[]: false,
[]: true,
[]: false,
[]: false,
[]: true,
[]: true,
}),
],
};
export default config;