-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathforge.config.ts
More file actions
100 lines (97 loc) · 3.07 KB
/
Copy pathforge.config.ts
File metadata and controls
100 lines (97 loc) · 3.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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 { VitePlugin } from '@electron-forge/plugin-vite';
import { PublisherGithub } from '@electron-forge/publisher-github';
import type { ForgeConfig } from '@electron-forge/shared-types';
import path from 'node:path';
import { packagedDependencies } from './vite.base.config';
// パッケージに入れるトップレベルのパス。plugin-vite の既定は `.vite` 以外を
// すべて捨てるが、バンドルしない依存(理由は vite.base.config.ts)は
// node_modules のまま同梱しないと実行時に解決できない
const packagedPaths = [
'/.vite',
...packagedDependencies.map((name) => `/node_modules/${name}`),
];
const config: ForgeConfig = {
packagerConfig: {
executableName: 'apm',
icon: 'icon/apm',
asar: {
// 7za は spawn する実行ファイルなので asar の外に出す
// (src/shared/unzip.ts が app.asar → app.asar.unpacked に読み替える)
unpack: '**/node_modules/{7zip-bin,win-7zip}/**/*',
},
extraResource: 'ThirdPartyNotices.txt',
ignore: (file) => {
if (!file) return false;
return !packagedPaths.some(
(kept) =>
file === kept ||
file.startsWith(`${kept}/`) ||
// 親ディレクトリを捨てると packager が中へ降りない
kept.startsWith(`${file}/`),
);
},
},
makers: [
new MakerSquirrel({
name: 'apm',
exe: 'apm.exe',
iconUrl: path.join(__dirname, 'icon/apm.ico'),
}),
new MakerZIP({}, ['win32', 'darwin', 'linux']),
new MakerRpm({
options: {
homepage: 'https://team-apm.github.io/apm/',
icon: path.join(__dirname, 'icon/apm1024.png'),
},
}),
new MakerDeb({
options: {
maintainer: 'ato lash',
homepage: 'https://team-apm.github.io/apm/',
icon: path.join(__dirname, 'icon/apm1024.png'),
},
}),
],
publishers: [
new PublisherGithub({
repository: {
owner: 'team-apm',
name: 'apm',
},
draft: true,
}),
],
plugins: [
new VitePlugin({
build: [
{
entry: 'src/main/index.ts',
config: 'vite.main.config.ts',
target: 'main',
},
{
entry: 'src/renderer/main/preload.ts',
config: 'vite.preload.config.ts',
target: 'preload',
},
{
entry: 'src/renderer/about/preload.ts',
config: 'vite.preload.config.ts',
target: 'preload',
},
],
renderer: [
{ name: 'main_window', config: 'vite.renderer.config.ts' },
{ name: 'about_window', config: 'vite.renderer.config.ts' },
{ name: 'splash_window', config: 'vite.renderer.config.ts' },
],
}),
new AutoUnpackNativesPlugin({}),
],
};
export default config;