#javascript #node.js #macos #puppeteer
#язык JavaScript #node.js #macos #кукольник
Вопрос:
Я использую следующий сценарий для запуска экземпляра кукловода:
const puppeteer = require('puppeteer'); (async () =gt; { const browser = await puppeteer.launch({ headless: false, // show the browser devtools: true, // open dev tools defaultViewport: null, // ensure that browser viewport fills the window args: [ '--disable-web-security', // disable CORS (be careful) ], }); // navigate to the Angular page const page = await browser.newPage(); page.goto('http://localhost:4200'); })();
После обновления до macOS Monterey при запуске скрипта я получаю следующую ошибку:
UnhandledPromiseRejectionWarning: Error: Failed to launch the browser process! [86046:259:1202/104944.082215:FATAL:process_singleton_posix.cc(246)] Check failed: SetupSockAddr(path, addr). Socket path too long: /var/folders/qy/dsjty77j5p545xnfk2mp3j6m0000gn/T/com.apple.shortcuts.mac-helper/.org.chromium.Chromium.G3zxw9/SingletonSocket
Это происходит с любым сценарием, который запускает Puppeteer в моей системе.
Похоже, что Puppeteer пытается запустить, используя путь конфигурации из экземпляра, который ранее был запущен ярлыками, и путь слишком длинный для пути сокета. Я все еще получаю ошибку, если я не запускаю скрипт с ярлыка.
В качестве временного исправления я предоставлял свойство ExecutablePath кукловоду:
const browser = await puppeteer.launch({ ... executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', });
Это не идеально, но делает свое дело. Есть идеи, как я могу заставить Кукольника сбросить настройки, чтобы больше не использовать путь быстрого доступа?