在Windows上安装Spatie的问题

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

“节点”未被识别为内部或外部命令,可操作程序或批处理文件

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

就像已经写在GitHub上的官方文档中一样,我已经运行:

  • npm install puppeteer
  • 撰写者需要spatie /浏览器

在我编写的代码中:

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");

程序文件带有双引号,否则Laravel会因为两个单词之间的空格而向我抛出错误。

我不确定路径,是否正确编写了路径? (Windows中的反斜杠问题)

jlcust 回答:在Windows上安装Spatie的问题

如果可以运行node -v并获取节点的版本。然后,该错误是由“程序文件”之间的空格引起的。要解决这个问题:

  1. 在本地磁盘(C :)中创建一个新文件夹,即程序
  2. 将“节点”文件夹移动到刚创建的文件夹中。
  3. 更改“环境变量”内“用户变量”中的节点“路径”,即C:\ Programs \ nodejs。注意:仅需要包含.exe文件的目录,而不是文件。
  4. 然后可以使用“ setNodeBinary”的路径,即"C:\Programs\\nodejs\\node.exe"。注意:此处需要.exe文件

这应该能够解决问题。

,

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

->setNodeBinary('PATH %~dp0;%PATH%;') //~dp0 : fetches current directory path in windows

希望你能解决

本文链接:https://www.f2er.com/3134509.html

大家都在问