Пытаюсь запустить сборку на сервере. Но при предварительной отрисовке возникает следующая ошибка. В настольных версиях ubuntu и macOS такой проблемы нет, проблема только на стороне сервера. Пробовал на разных серверах.
95% emittingError: Failed to launch chrome!
TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md
at onClose (/home/phpuser/testPrerender/frontend/node_modules/puppeteer/lib/Launcher.js:255:14)
at ChildProcess.helper.addEventListener (/home/phpuser/testPrerender/frontend/node_modules/puppeteer/lib/Launcher.js:245:60)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:194:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
[Prerenderer - PuppeteerRenderer] Unable to start Puppeteer
(node:2535) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'close' of null
(node:2535) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Мои настройки prerender-spa-plugin в webpack:
new PrerenderSPAPlugin({
// Required - The path to the webpack-outputted app to prerender.
staticDir: _.outputPath,
// Required - Routes to render.
routes: ['/', '/abouts', '/mobile-apps', '/docs/service-fees', '/news', '/legal/Terms%20of%20use', '/legal/Refund%20policy', '/legal/Privacy%20Policy', '/legal/Notification%20o$
renderer: new PrerenderSPAPlugin.PuppeteerRenderer({
renderAfterDocumentEvent: 'render-event',
headless: false,
}),
})



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


У меня была такая же проблема, она отлично работает локально, но проблема возникает на сервере. Мое временное решение заключалось в том, чтобы уменьшить количество маршрутов, проходящих по
routes: []
Я сказал временное исправление, потому что мой проект не может быть построен для производства
Та же проблема заключается в том, что npm run build успешно работает локально, но не работает при развертывании на сервере.
Скорее всего, это связано с кукловодом, используемым в prerender-spa-plugin 3.x. (Ссылка: https://qiita.com/pokotyan/items/11806b8b77f4a3527951)
Поскольку конфигурация CI не была авторизована для изменения, я отказался от версии 3.
Позже я использовал v2.1.0, основанный на PhantomJS и успешно развернутый на сервере.
vue-cli3 & "prerender-spa-plugin": "^ 2.1.0" vue.config.js
configureWebpack: {
plugins: [
new PrerenderSpaPlugin(
// Absolute path to compiled SPA
path.resolve(__dirname, './dist'),
// List of routes to prerender
['/a', '/b', '/c', '/d', '/e'],
{
// options
ignoreJSErrors: true,
}
)
],
}
Это действительно не исправление, в большинстве случаев маршруты абсолютно необходимы, иначе нет смысла для предварительного рендера ...