Laravel 10.16.1+MacOS环境下NativePHP应用启动失败求助
Laravel 10 + NativePHP 在MacOS下执行
php artisan native:serve报错:找不到Info.plist文件 问题场景
使用Laravel 10.16.1版本搭配MacOS系统,首次尝试通过php artisan native:serve启动NativePHP应用时,触发如下错误:
Starting NativePHP dev server… Fetching latest dependencies… Starting NativePHP app… ErrorException file_get_contents(/home/user/processApp-native/vendor/nativephp/electron/src/Commands/../../resources/js/node_modules/electron/dist/Electron.app/Contents/Info.plist): Failed to open stream: No such file or directory at vendor/nativephp/electron/src/Commands/DevelopCommand.php:65 61▕ * @return void 62▕ */ 63▕ protected function patchPlist() 64▕ { ➜ 65▕ $pList = file_get_contents(__DIR__.'/../../resources/js/node_modules/electron/dist/Electron.app/Contents/Info.plist'); 66▕ 67▕ // Change the CFBundleName to the correct app name 68▕ $pattern = '/(<key>CFBundleName<\/key>\s+<string>)(.*?)(<\/string>)/m'; 69▕ $pList = preg_replace($pattern, '$1'.config('app.name').'$3', $pList); +14 vendor frames 15 artisan:37 Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))'
错误原因
NativePHP的DevelopCommand启动时会尝试修改Electron应用的Info.plist文件,但Electron依赖未被正确安装,导致目标文件路径不存在。通常是自动安装依赖时网络或权限问题导致下载不完整。
解决步骤
1. 手动安装Electron依赖
进入NativePHP的Electron资源目录,手动执行npm安装:
cd vendor/nativephp/electron/resources/js npm install
安装完成后检查node_modules/electron/dist/Electron.app/Contents/Info.plist是否存在,若存在则重新执行php artisan native:serve。
2. 清理缓存后重新安装所有依赖
如果第一步无效,彻底清理现有依赖后重新安装:
# 清理PHP依赖 rm -rf vendor composer.lock composer install # 清理并重新安装Electron依赖 cd vendor/nativephp/electron/resources/js rm -rf node_modules package-lock.json npm install
3. 指定稳定版Electron(可选)
若自动安装的Electron版本存在兼容性问题,可手动指定稳定版本:
- 编辑
vendor/nativephp/electron/resources/js/package.json,将electron依赖改为稳定版本,例如:"dependencies": { "electron": "^25.0.0" } - 执行
npm install重新安装依赖,再尝试启动应用。
内容的提问来源于stack exchange,提问作者huhu
相关产品推荐
相关产品推荐

