Laravel项目使用PuPHPeteer报错Node not found求助
解决PuPHPeteer初始化时“node未识别”的问题
以下是几个针对性的解决方案,按顺序尝试:
先确认Node.js的基础运行状态
打开终端(Windows用命令提示符/PowerShell,Linux/Mac用终端),直接执行node -v和npm -v。如果这两个命令都报错,说明Node.js根本没装对——重新下载LTS版本的Node.js安装包,安装时务必勾选“Add Node.js to PATH”选项,安装完成后重启终端再测试。手动指定Node路径给PuPHPeteer
系统PATH没问题但PHP进程没读取到的情况很常见(比如Web服务器进程的环境变量和用户终端隔离),可以在初始化PuPHPeteer时直接传入Node的绝对路径:use Zoon\Puphpeteer\Puppeteer; // Windows示例路径,根据你的实际安装位置调整 $puppeteer = Puppeteer::create([ 'node' => 'C:\Program Files\nodejs\node.exe', ]); // Linux/Mac示例路径 // $puppeteer = Puppeteer::create([ // 'node' => '/usr/bin/node', // ]);检查PHP进程的环境变量
PHP的exec/shell_exec函数使用的PATH可能和你终端里的不一样,写个临时路由验证:// 在routes/web.php里添加 Route::get('/check-path', function () { // Windows用这个 echo '<pre>' . shell_exec('echo %PATH%') . '</pre>'; // Linux/Mac换成下面这行 // echo '<pre>' . shell_exec('echo $PATH') . '</pre>'; });访问这个路由,如果输出里没有Node.js的安装目录,就手动把Node路径加到PHP的运行环境里:
- 用
php artisan serve的话,先在终端里执行set PATH=%PATH%;C:\Program Files\nodejs(Windows)或export PATH=$PATH:/usr/bin/node(Linux/Mac),再启动服务。 - 用Apache/Nginx的话,修改服务器的环境变量配置,或者在虚拟主机配置里添加
SetEnv PATH "/usr/bin:/usr/local/bin:/path/to/node"(Linux),Windows则在系统环境变量里添加后重启服务器。
- 用
重新安装PuPHPeteer的Node依赖
进入项目根目录,删除node_modules文件夹和package-lock.json,然后重新执行npm install github:zoonru/puphpeteer,确保安装过程没有报错。安装完成后检查node_modules/.bin目录,确认有PuPHPeteer相关的可执行脚本。重启所有相关进程
不管是终端窗口、Laravel开发服务器还是Web服务器,修改环境变量后必须重启才能生效,别漏了这一步。
内容的提问来源于stack exchange,提问作者Franco Lago
相关产品推荐
相关产品推荐

