在 Windows 上安装 Spatie 时出现问题
Problem with the installation of Spatie on Windows
我正在尝试为一个用 Laravel 编写的项目配置 Spatie/Browsershot,但在完成所有步骤后,我仍然遇到一个错误:
'node' 不是内部或外部命令,也不是可运行的程序或批处理文件
A 已经安装了最新版本的 node 和 npm,它们都存在于 PATH 中并且也可以在 cmd 上工作。
就像 GitHub 上的官方文档中写的那样,我 运行:
- npm 安装 puppeteer
- 作曲家要求 spatie/browsershot
在我写的代码中:
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");
Program Files是双引号,否则Laravel会报错,因为两个字中间有白色space
我不确定路径,它们是否正确书写? (windows中反斜杠的问题)
如果可以 运行 node -v
并获取节点的版本。然后,错误是由“Program Files”之间的space引起的。解决这个问题:
- 在您的本地磁盘 (C:) 中创建一个新文件夹,即 Programs
- 将您的 Node 文件夹移动到您刚刚创建的文件夹。
- 更改“环境变量”内“用户变量”中的节点“路径”,即 C:\Programs\nodejs。注意:只需要包含 .exe 文件的目录,不需要文件。
- 然后您可以使用“setNodeBinary”的路径,即
"C:\Programs\nodejs\node.exe"
。注意:此处需要 .exe 文件
这样应该可以解决问题。
这个小片段帮助我解决了这个问题。只要 OS 环境变量指向 node.exe 文件,您就可以将其放入您的代码中
->setNodeBinary('PATH %~dp0;%PATH%;') //~dp0 : fetches current directory path in windows
希望你能解决问题
我正在尝试为一个用 Laravel 编写的项目配置 Spatie/Browsershot,但在完成所有步骤后,我仍然遇到一个错误:
'node' 不是内部或外部命令,也不是可运行的程序或批处理文件
A 已经安装了最新版本的 node 和 npm,它们都存在于 PATH 中并且也可以在 cmd 上工作。
就像 GitHub 上的官方文档中写的那样,我 运行:
- npm 安装 puppeteer
- 作曲家要求 spatie/browsershot
在我写的代码中:
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");
Program Files是双引号,否则Laravel会报错,因为两个字中间有白色space
我不确定路径,它们是否正确书写? (windows中反斜杠的问题)
如果可以 运行 node -v
并获取节点的版本。然后,错误是由“Program Files”之间的space引起的。解决这个问题:
- 在您的本地磁盘 (C:) 中创建一个新文件夹,即 Programs
- 将您的 Node 文件夹移动到您刚刚创建的文件夹。
- 更改“环境变量”内“用户变量”中的节点“路径”,即 C:\Programs\nodejs。注意:只需要包含 .exe 文件的目录,不需要文件。
- 然后您可以使用“setNodeBinary”的路径,即
"C:\Programs\nodejs\node.exe"
。注意:此处需要 .exe 文件
这样应该可以解决问题。
这个小片段帮助我解决了这个问题。只要 OS 环境变量指向 node.exe 文件,您就可以将其放入您的代码中
->setNodeBinary('PATH %~dp0;%PATH%;') //~dp0 : fetches current directory path in windows
希望你能解决问题