fix: pin electron-builder and adjust release files patterns

This commit is contained in:
2026-03-21 20:47:30 -07:00
parent 76b5ab68ba
commit a42fe599cb
4 changed files with 33 additions and 9 deletions

View File

@@ -20,7 +20,7 @@
"@types/node": "^25.3.0",
"@types/ws": "^8.18.1",
"electron": "^37.10.3",
"electron-builder": "^26.8.2",
"electron-builder": "26.8.2",
"esbuild": "^0.25.12",
"prettier": "^3.8.1",
"typescript": "^5.9.3",

View File

@@ -111,7 +111,7 @@
"@types/node": "^25.3.0",
"@types/ws": "^8.18.1",
"electron": "^37.10.3",
"electron-builder": "^26.8.2",
"electron-builder": "26.8.2",
"esbuild": "^0.25.12",
"prettier": "^3.8.1",
"typescript": "^5.9.3"
@@ -165,12 +165,21 @@
"include": "build/installer.nsh"
},
"files": [
"dist/**/*",
"stats/dist/**/*",
"vendor/texthooker-ui/docs/**/*",
"vendor/texthooker-ui/package.json",
"package.json",
"scripts/get-mpv-window-macos.swift"
"**/*",
"!src{,/**/*}",
"!launcher{,/**/*}",
"!stats/src{,/**/*}",
"!stats/index.html",
"!docs-site{,/**/*}",
"!changes{,/**/*}",
"!backlog{,/**/*}",
"!.tmp{,/**/*}",
"!release-*{,/**/*}",
"!vendor/subminer-yomitan{,/**/*}",
"!vendor/texthooker-ui/src{,/**/*}",
"!vendor/texthooker-ui/node_modules{,/**/*}",
"!vendor/texthooker-ui/.svelte-kit{,/**/*}",
"!vendor/texthooker-ui/package-lock.json"
],
"extraResources": [
{

View File

@@ -10,6 +10,9 @@ const makefile = readFileSync(makefilePath, 'utf8');
const packageJsonPath = resolve(__dirname, '../package.json');
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8')) as {
scripts: Record<string, string>;
build?: {
files?: string[];
};
};
test('publish release leaves prerelease unset so gh creates a normal release', () => {
@@ -65,6 +68,18 @@ test('release package scripts disable implicit electron-builder publishing', ()
assert.match(packageJson.scripts['build:win:unsigned'] ?? '', /build-win-unsigned\.mjs/);
});
test('release packaging keeps default file inclusion and excludes large source-only trees explicitly', () => {
const files = packageJson.build?.files ?? [];
assert.ok(files.includes('**/*'));
assert.ok(files.includes('!src{,/**/*}'));
assert.ok(files.includes('!launcher{,/**/*}'));
assert.ok(files.includes('!stats/src{,/**/*}'));
assert.ok(files.includes('!.tmp{,/**/*}'));
assert.ok(files.includes('!release-*{,/**/*}'));
assert.ok(files.includes('!vendor/subminer-yomitan{,/**/*}'));
assert.ok(files.includes('!vendor/texthooker-ui/src{,/**/*}'));
});
test('config example generation runs directly from source without unrelated bundle prerequisites', () => {
assert.equal(
packageJson.scripts['generate:config-example'],