laravel - Laravel Spatie Browsershot 错误号:-4058,代码:'ENOENT'
问题描述
我正在尝试捕获在 localhost 中运行的网站的屏幕截图,并且我正在使用 Spatie/Browsershot。
当我尝试运行此功能时
public function receipt(){
$image = Browsershot::url('http://localhost:8000/transaction/receipt/123')
->setNodeBinary('C:\Users\\my_user\\nodejs\\node.exe')
->setNpmBinary('C:\Users\\my_user\\nodejs\\npm.exe')
->base64Screenshot();
return $image;
}
弹出这个错误
Symfony\Component\Process\Exception\ProcessFailedException
The command "C:^\Users^\Abimanyu^\nodejs^\node.exe ^"D:^\laravel_projects^\teliti-core-app^\vendor^\spatie^\browsershot^\src/../bin/browser.js^" ^"^{^\^"url^\^":^\^"http:^\/^\/localhost:8000^\/transaction^\/receipt^\/123^\^",^\^"action^\^":^\^"screenshot^\^",^\^"options^\^":^{^\^"type^\^":^\^"png^\^",^\^"args^\^":^[^],^\^"viewport^\^":^{^\^"width^\^":800,^\^"height^\^":600^},^\^"executablePath^\^":^\^"C:^\^\Users^\^\Abimanyu^\^\AppData^\^\Local^\^\Google^\^\Chrome^\^\Application^\^\chrome.exe^\^"^}^}^"" failed. Exit Code: 1(General error) Working directory: D:\laravel_projects\teliti-core-app\public Output: ================ Error Output: ================ [Error: ENOENT: no such file or directory, mkdtemp 'undefined\temp\puppeteer_dev_chrome_profile-XXXXXX'] { errno: -4058, code: 'ENOENT', syscall: 'mkdtemp', path: 'undefined\\temp\\puppeteer_dev_chrome_profile-XXXXXX' }
我尝试将自定义路径设置为这些属性:
setChromePath("C:\Users\my_user\AppData\Local\Google\Chrome\Application\chrome.exe")
setNpmBinary('C:\Users\my_user\AppData\Roaming\npm')
我还运行了 npm install puppeteer。
附加:Laravel 8 Windows 10 节点 v14.17.2
有人对我做错了什么有任何想法吗?
解决方案
推荐阅读
- git - Git 命令 - 使用带有“HEAD”选项的 -h 开关时未列出存储库头
- c# - c# TextBox Enter 事件在没有用户操作的情况下触发
- python - 如何使用python获取某个路径的设备文件和分区号?
- javascript - react-native-map 标记图像源来自一个状态
- php - 根据子类别显示相关产品 - woocommerce
- angular - Angular 5:“任何[]”类型上不存在属性“描述”
- django - 如何防止因 SuspiciousOperation 错误而发送的管理员电子邮件
- python - Python sys.stdout.flush() 似乎不起作用
- keras - 变分自动编码器:编码器是否必须具有与解码器相同的层数?
- java - AWS Lambda 中的资源释放