-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathelectron-builder.json5
More file actions
111 lines (108 loc) · 3.43 KB
/
electron-builder.json5
File metadata and controls
111 lines (108 loc) · 3.43 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
101
102
103
104
105
106
107
108
109
110
111
{
productName: "lameta",
appId: "com.github.lameta.lameta",
afterSign: "electron-builder-notarize",
dmg: {
contents: [
{
x: 410,
y: 150,
type: "link",
path: "/Applications"
},
{
x: 130,
y: 150,
type: "file"
}
]
},
files: [
/* I started on this because it seems crazy to include it (most should be bundled into index.js),
but actually it's one thing after another that something at runtime is expecting to find.
"!node_modules",
"node_modules/electron",
"node_modules/electron-store",
"node_modules/@electron-toolkit",
"node_modules/conf",
*/
// Note, I have so far not been able to prevent two copies of all 5 ffprobe.exe's from being
// included, despite much effort. One copy of each goes into app.asar,
// one goes into app.asar.unpacked (this is the default electron-builder for all exe files,
// I haven't figured out how to override that.)
// electron-builder just doesn't seem to honor the filter rules.
// some of the bigger packages that we don't need. Drops installer by about 9 meg
"!node_modules/@mui",
"!node_modules/@reduxjs",
"!node_modules/xlsx",
"!node_modules/trie-search",
"index.html",
"package.json",
"index*.js",
{
from: "assets/",
// "dist/" is the base directory (index.html is there), so the paths work out more simply if assets are there too. Then we can just say src="assets/whatever.png" in the html.
to: "dist/assets"
},
"dist/",
"locale/",
"archive-configurations/",
"schemas/",
"sample data/",
// we only want ffprobe, not ffmpeg
"!node_modules/ffmpeg-ffprobe-static/ffmpeg*",
"!node_modules/ffmpeg-ffprobe-static/bin/*/ffmpeg*"
],
extraFiles: [],
directories: {
buildResources: "resources",
output: "release"
},
win: {
target: "nsis",
icon: "build/windows.ico",
fileAssociations: [
{
ext: "sprj",
name: "lameta/lameta project"
}
]
},
nsis: {
artifactName: "${productName} Windows Setup ${version}.${ext}"
},
mac: {
target: { target: "default", arch: ["universal"] },
icon: "build/mac.icns",
hardenedRuntime: true,
artifactName: "${productName}-mac-${version}.${ext}",
// Add usage description so macOS shows a clear reason the first time the app
// requests access to the user's Documents folder (TCC protected). This does not
// suppress the first prompt (Apple does not allow bypass) but should avoid
// repeated prompts unless the user denies access.
extendInfo: {
NSDocumentsFolderUsageDescription: "lameta needs access to your Documents folder so you can add and organise files in your lameta project folder(s).",
// Does not appear to work: Show version in Dock tooltip and app menu so users can distinguish beta from release
CFBundleDisplayName: "lameta ${version}"
},
fileAssociations: [
{
ext: "sprj",
name: "lameta/lameta project",
role: "Editor"
}
],
notarize: true
},
linux: {
target: ["deb", "AppImage"],
category: "science",
description: "A metadata tool to help with organising collections of files. It is mainly aimed at collections made in the course of documenting language, music, and other cultural expressions.",
fileAssociations: [
{
ext: "sprj",
name: "lameta/lameta project"
}
]
}
}