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/node": "^25.3.0",
"@types/ws": "^8.18.1", "@types/ws": "^8.18.1",
"electron": "^37.10.3", "electron": "^37.10.3",
"electron-builder": "^26.8.2", "electron-builder": "26.8.2",
"esbuild": "^0.25.12", "esbuild": "^0.25.12",
"prettier": "^3.8.1", "prettier": "^3.8.1",
"typescript": "^5.9.3", "typescript": "^5.9.3",

View File

@@ -111,7 +111,7 @@
"@types/node": "^25.3.0", "@types/node": "^25.3.0",
"@types/ws": "^8.18.1", "@types/ws": "^8.18.1",
"electron": "^37.10.3", "electron": "^37.10.3",
"electron-builder": "^26.8.2", "electron-builder": "26.8.2",
"esbuild": "^0.25.12", "esbuild": "^0.25.12",
"prettier": "^3.8.1", "prettier": "^3.8.1",
"typescript": "^5.9.3" "typescript": "^5.9.3"
@@ -165,12 +165,21 @@
"include": "build/installer.nsh" "include": "build/installer.nsh"
}, },
"files": [ "files": [
"dist/**/*", "**/*",
"stats/dist/**/*", "!src{,/**/*}",
"vendor/texthooker-ui/docs/**/*", "!launcher{,/**/*}",
"vendor/texthooker-ui/package.json", "!stats/src{,/**/*}",
"package.json", "!stats/index.html",
"scripts/get-mpv-window-macos.swift" "!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": [ "extraResources": [
{ {

View File

@@ -10,6 +10,9 @@ const makefile = readFileSync(makefilePath, 'utf8');
const packageJsonPath = resolve(__dirname, '../package.json'); const packageJsonPath = resolve(__dirname, '../package.json');
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8')) as { const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8')) as {
scripts: Record<string, string>; scripts: Record<string, string>;
build?: {
files?: string[];
};
}; };
test('publish release leaves prerelease unset so gh creates a normal release', () => { 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/); 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', () => { test('config example generation runs directly from source without unrelated bundle prerequisites', () => {
assert.equal( assert.equal(
packageJson.scripts['generate:config-example'], packageJson.scripts['generate:config-example'],