在 Windows 上安装 Spatie 的问题

H.K*_*nov 1 php node.js npm laravel browsershot

我正在尝试为一个用 Laravel 编写的项目配置 Spatie/Browsershot,但在完成所有步骤后,我仍然收到一个错误:

“node”不被识别为内部或外部命令、可操作程序或批处理文件

A 已经安装了最新版本的 Node 和 npm,它们都存在于 PATH 中并且也可以在 cmd 上运行。

就像 GitHub 上的官方文档中写的那样,我运行了:

  • npm 安装 puppeteer
  • 作曲家需要空间/浏览器截图

在我写的代码中:

use Spatie\Browsershot\Browsershot;

//Method to generate some random id
$unique_id = uniqid('img_');

//The path to the node and npm folders
$path_node = realpath('C:\\"Program Files"\\nodejs');
$path_npm = realpath('C:\\Users\\Hristo\\AppData\\Roaming\\npm');


//The $content is actually a stored HTML code        
Browsershot::html("$content")->setScreenshotType('jpeg', 100)
                             ->setNodeBinary($path_node)
                             ->setNpmBinary($path_npm)
                              ->save("$unique_id.jpeg");

Run Code Online (Sandbox Code Playgroud)

Program Files带有双引号,否则 Laravel 会因为两个单词之间的空格而抛出错误。

我不确定路径,它们写得正确吗?(windows中反斜杠的问题)

小智 5

这个小片段帮助我解决了这个问题。只要操作系统环境变量指向 node.exe 文件,您就可以将其放入代码中

->setNodeBinary('PATH %~dp0;%PATH%;') //~dp0 : fetches current directory path in windows
Run Code Online (Sandbox Code Playgroud)

希望你能解决问题