build: add Windows NSIS installer via electron-builder

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ivan Fontosh
2026-07-01 17:24:34 +08:00
parent 7ca73f5871
commit dd052f1585
4 changed files with 3483 additions and 6 deletions
+1
View File
@@ -1,3 +1,4 @@
node_modules/ node_modules/
release/
dist/ dist/
*.log *.log
+12 -1
View File
@@ -17,13 +17,24 @@
Также в этой папке должны лежать скрипты `release-all.ps1`, `prepare-release.ps1`, `publish.ps1` и конфиги `release-config.json`, `publish-config.json` (как в `D:\TTRPG-Release`). Также в этой папке должны лежать скрипты `release-all.ps1`, `prepare-release.ps1`, `publish.ps1` и конфиги `release-config.json`, `publish-config.json` (как в `D:\TTRPG-Release`).
## Запуск ## Запуск из исходников
```bash ```bash
npm install npm install
npm start npm start
``` ```
## Сборка установщика Windows
```bash
npm install
npm run pack:win
```
Готовый установщик: `release/TTRPGPlayerPublisher-Setup.exe`
Распакованная папка без установщика: `npm run pack:dir``release/win-unpacked/`
## Настройки ## Настройки
При первом запуске создаётся `%APPDATA%\ttrpg-player-publisher\config.json` с путями: При первом запуске создаётся `%APPDATA%\ttrpg-player-publisher\config.json` с путями:
+3435 -2
View File
File diff suppressed because it is too large Load Diff
+35 -3
View File
@@ -8,9 +8,41 @@
"scripts": { "scripts": {
"dev": "node src/run-electron.mjs", "dev": "node src/run-electron.mjs",
"start": "node src/run-electron.mjs", "start": "node src/run-electron.mjs",
"test": "node --test src/release/*.test.mjs" "test": "node --test src/release/*.test.mjs",
"pack:win": "electron-builder --win",
"pack:dir": "electron-builder --dir"
}, },
"dependencies": { "dependencies": {},
"electron": "^41.2.0" "devDependencies": {
"electron": "^41.2.0",
"electron-builder": "^26.8.1"
},
"build": {
"appId": "com.ttrpgplayer.publisher",
"productName": "TTRPG Player Publisher",
"copyright": "Copyright © TTRPGPlayer",
"directories": {
"output": "release"
},
"files": [
"src/**/*",
"default-config.json",
"package.json"
],
"asar": true,
"win": {
"target": [
{
"target": "nsis",
"arch": ["x64"]
}
],
"artifactName": "TTRPGPlayerPublisher-Setup.${ext}"
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"artifactName": "TTRPGPlayerPublisher-Setup.${ext}"
}
} }
} }