fix
This commit is contained in:
@@ -19,6 +19,7 @@ void test('package.json: конфиг electron-builder (mac/win/linux)', () => {
|
|||||||
nsis?: { artifactName?: string };
|
nsis?: { artifactName?: string };
|
||||||
dmg?: { artifactName?: string };
|
dmg?: { artifactName?: string };
|
||||||
files: string[];
|
files: string[];
|
||||||
|
toolsets?: { appimage?: string };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
assert.ok(pkg.build);
|
assert.ok(pkg.build);
|
||||||
@@ -38,6 +39,7 @@ void test('package.json: конфиг electron-builder (mac/win/linux)', () => {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
assert.ok(Array.isArray(pkg.build.mac.target));
|
assert.ok(Array.isArray(pkg.build.mac.target));
|
||||||
|
assert.equal(pkg.build.toolsets?.appimage, '1.0.2');
|
||||||
assert.ok(Array.isArray(pkg.build.linux.target));
|
assert.ok(Array.isArray(pkg.build.linux.target));
|
||||||
const linuxTargets = pkg.build.linux.target as { target: string; arch: string[] }[];
|
const linuxTargets = pkg.build.linux.target as { target: string; arch: string[] }[];
|
||||||
assert.ok(linuxTargets.some((t) => t.target === 'AppImage'));
|
assert.ok(linuxTargets.some((t) => t.target === 'AppImage'));
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ npm run release:info # версия и пример тега vX.Y.Z (тег о
|
|||||||
| `npm run pack:linux` | Linux или WSL с зависимостями | `release/` — AppImage x64/arm64 + `latest-linux.yml` |
|
| `npm run pack:linux` | Linux или WSL с зависимостями | `release/` — AppImage x64/arm64 + `latest-linux.yml` |
|
||||||
| `npm run pack:mac` | macOS | `release/` — dmg + `latest-mac.yml` |
|
| `npm run pack:mac` | macOS | `release/` — dmg + `latest-mac.yml` |
|
||||||
|
|
||||||
|
Linux AppImage не собирается напрямую из Windows PowerShell: `mksquashfs` — Linux-инструмент. На Windows запускайте команду внутри WSL.
|
||||||
|
|
||||||
Скопируйте нужные файлы из `release/` в папку публикации (например `D:\TTRPG-Release\`).
|
Скопируйте нужные файлы из `release/` в папку публикации (например `D:\TTRPG-Release\`).
|
||||||
|
|
||||||
## Сервер обновлений
|
## Сервер обновлений
|
||||||
|
|||||||
+4
-1
@@ -19,7 +19,7 @@
|
|||||||
"pack:dir": "npm run build && node scripts/release-win-prep.mjs && electron-builder --dir",
|
"pack:dir": "npm run build && node scripts/release-win-prep.mjs && electron-builder --dir",
|
||||||
"pack:mac": "npm run build && electron-builder --mac",
|
"pack:mac": "npm run build && electron-builder --mac",
|
||||||
"pack:win": "npm run build && node scripts/release-win-prep.mjs && electron-builder --win",
|
"pack:win": "npm run build && node scripts/release-win-prep.mjs && electron-builder --win",
|
||||||
"pack:linux": "npm run build && electron-builder --linux"
|
"pack:linux": "node scripts/release-linux-pack.mjs"
|
||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "",
|
"author": "",
|
||||||
@@ -96,6 +96,9 @@
|
|||||||
"node_modules/@img/**",
|
"node_modules/@img/**",
|
||||||
"node_modules/ffmpeg-static/**"
|
"node_modules/ffmpeg-static/**"
|
||||||
],
|
],
|
||||||
|
"toolsets": {
|
||||||
|
"appimage": "1.0.2"
|
||||||
|
},
|
||||||
"mac": {
|
"mac": {
|
||||||
"category": "public.app-category.games",
|
"category": "public.app-category.games",
|
||||||
"target": [
|
"target": [
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
/**
|
||||||
|
* Build Linux release artifacts.
|
||||||
|
*
|
||||||
|
* AppImage packaging uses Linux tooling (mksquashfs). Running it from
|
||||||
|
* Windows PowerShell reaches linux-unpacked, then fails while creating
|
||||||
|
* the AppImage. Build from Linux/WSL instead.
|
||||||
|
*/
|
||||||
|
import { spawnSync } from 'node:child_process';
|
||||||
|
import process from 'node:process';
|
||||||
|
|
||||||
|
function run(command, args) {
|
||||||
|
const result = spawnSync(command, args, {
|
||||||
|
stdio: 'inherit',
|
||||||
|
shell: process.platform === 'win32',
|
||||||
|
});
|
||||||
|
|
||||||
|
if (result.status !== 0) {
|
||||||
|
process.exit(result.status ?? 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.platform === 'win32') {
|
||||||
|
console.error(
|
||||||
|
[
|
||||||
|
'[pack:linux] AppImage нельзя собрать напрямую из Windows PowerShell.',
|
||||||
|
'Запустите команду внутри Linux/WSL из папки проекта:',
|
||||||
|
'',
|
||||||
|
' cd /mnt/d/Work/my_projects/dnd_project/dnd_player',
|
||||||
|
' npm ci',
|
||||||
|
' npm run pack:linux',
|
||||||
|
].join('\n'),
|
||||||
|
);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
run('npm', ['run', 'build']);
|
||||||
|
run('electron-builder', ['--linux']);
|
||||||
Reference in New Issue
Block a user