Move Playwright from dev to production dependencies and implement robust browser management for company deployment environment: - Move playwright and playwright-core to dependencies - Set PLAYWRIGHT_BROWSERS_PATH to user data directory before imports - Add startup validation for Chromium browser with friendly error dialog - Update build scripts to skip browser download during build process - Configure electron-builder to unpack Playwright for native module access - Add deployment documentation for browser setup in restricted environments This allows manual browser installation in company environments where direct downloads are blocked during build. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2.7 KiB
2.7 KiB
Playwright 部署说明
浏览器路径问题修复
问题描述
应用启动时提示"浏览器文件未找到",但浏览器文件已经放置在正确路径下。
原因:Playwright 1.48+ 改变了浏览器目录命名规则:
- 旧格式:
chromium-win32/chrome.exe - 新格式:
chromium-1208/chrome-win64/chrome.exe(revision 号可能不同)
解决方案
代码已更新为自动检测新旧两种格式,并显示当前目录内容以便调试。
快速部署
方法 1:使用 Playwright CLI(推荐)
# 在应用目录运行
npx playwright install chromium
浏览器会自动下载并安装到正确位置:
- 用户数据目录:
%APPDATA%\erpauto\ms-playwright\ - 完整路径:
C:\Users\pengq\AppData\Roaming\erpauto\ms-playwright\chromium-<revision>\chrome-win64\chrome.exe
方法 2:手动复制
如果你已经有 Playwright 浏览器文件,可以复制到应用的用户数据目录:
- 找到现有浏览器文件(通常在
%USERPROFILE%\AppData\Local\ms-playwright) - 复制到
%APPDATA%\erpauto\ms-playwright\ - 确保目录结构正确:
ms-playwright/ ├── chromium-1208/ │ ├── chrome-win64/ │ │ └── chrome.exe │ └── INSTALLATION_COMPLETE └── chromium_headless_shell-1208/ └── ...
方法 3:使用 PLAYWRIGHT_BROWSERS_PATH 环境变量
将浏览器文件放在共享位置,然后设置环境变量:
# 系统环境变量
setx PLAYWRIGHT_BROWSERS_PATH "D:\shared\playwright-browsers"
或在应用启动脚本中设置。
验证安装
运行应用后,检查是否还有错误提示。如果没有浏览器错误,说明安装成功。
你也可以在应用日志中查找:
Found Chromium revision: chromium-1208- 表示成功找到浏览器Playwright browser not found- 表示未找到,会显示可用目录列表
常见问题
Q: 显示"浏览器文件未找到"但文件确实在那里
检查目录结构是否正确:
# 查看当前目录内容
Get-ChildItem $env:APPDATA\erpauto\ms-playwright
# 检查 chrome.exe 是否存在
Test-Path "$env:APPDATA\erpauto\ms-playwright\chromium-*/chrome-win64/chrome.exe"
Q: 不同用户使用同一个浏览器文件
使用环境变量 PLAYWRIGHT_BROWSERS_PATH 指向共享目录。
Q: 离线部署
- 在有网络的机器上运行
npx playwright install chromium - 复制整个
ms-playwright目录 - 在目标机器上设置
PLAYWRIGHT_BROWSERS_PATH指向该目录
下次构建
只需运行:
npm run build:win
所有配置已保存,Playwright 模块和浏览器路径检查会自动处理。