excel-batch-editor/package.json
MikiVL 70a56ede36 添加 macOS 安装包打包支持
- 重命名 parser.py → xl_parser.py 避免与 Python 3.9 stdlib 命名冲突
- 添加 PyInstaller spec 文件用于构建独立 Python 可执行文件
- 配置 electron-builder:extraResources 打包 Python binary、asarUnpack better-sqlite3
- 新增 build:python 和 dist 脚本,一键生成 DMG 安装包
- 更新测试:对齐新 fixture 结构和重命名后的模块

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 19:44:01 +08:00

67 lines
2.1 KiB
JSON

{
"name": "excel-batch-editor",
"version": "1.0.0",
"main": "electron/main.js",
"scripts": {
"start": "electron .",
"dev": "concurrently \"npm run dev:renderer\" \"wait-on http://localhost:5173 && NODE_ENV=development electron .\"",
"dev:renderer": "vite --config renderer/vite.config.mjs --port 5173 --strictPort",
"build:python": "cd python && .venv/bin/pyinstaller --onefile --name main --distpath dist --workpath build --specpath . --hidden-import xl_parser --hidden-import generator --collect-all openpyxl --collect-all et_xmlfile --collect-all PIL main.py",
"build": "cd renderer && npx vite build --config vite.config.mjs && cd .. && electron-builder",
"dist": "npm run build:python && npm run build",
"test": "/Users/mikivl/workspace/excel-batch-editor/python/.venv/bin/pytest tests/python/ -v"
},
"build": {
"appId": "com.excelbatcheditor.app",
"productName": "Excel批量编辑器",
"files": [
"electron/**/*",
"renderer/dist/**/*",
"node_modules/**/*",
"package.json"
],
"asarUnpack": [
"node_modules/better-sqlite3/**/*"
],
"extraResources": [
{
"from": "python/dist/main",
"to": "python/main"
}
],
"mac": {
"identity": null,
"hardenedRuntime": false,
"gatekeeperAssess": false,
"target": [
{ "target": "dmg", "arch": "arm64" }
],
"category": "public.app-category.productivity"
},
"dmg": {
"contents": [
{ "x": 130, "y": 150, "type": "file" },
{ "x": 410, "y": 150, "type": "link", "path": "/Applications" }
]
}
},
"devDependencies": {
"@playwright/test": "^1.59.1",
"@tailwindcss/vite": "^4.0.0",
"@vitejs/plugin-react": "^4.2.0",
"concurrently": "^8.2.2",
"electron": "^28.0.0",
"electron-builder": "^24.9.1",
"electron-rebuild": "^3.2.9",
"tailwindcss": "^4.0.0",
"vite": "^5.0.0",
"wait-on": "^7.2.0"
},
"dependencies": {
"better-sqlite3": "^11.0.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.22.0"
}
}