ggrossetie / asciidoctor-web-pdf

Convert AsciiDoc documents to PDF using web technologies
https://asciidoctor.org
MIT License
443 stars 90 forks source link

Unable to install @latest via npm #691

Open siaccarino opened 10 months ago

siaccarino commented 10 months ago

The installation log is filled with lot of deprecation warnings and at the end the puppeteer dependency fails to install with:

npm ERR! ERROR: Failed to set up Chromium r1011831! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.

a simple version bumping fails due to breaking API changes

the full log:

npm WARN deprecated @fortawesome/fontawesome-common-types@0.3.0: Please upgrade to 6.1.0. https://fontawesome.com/docs/changelog/
npm WARN deprecated @fortawesome/fontawesome-svg-core@1.3.0: Please upgrade to 6.1.0. https://fontawesome.com/docs/changelog/
npm WARN deprecated @babel/polyfill@7.12.1: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.
npm WARN deprecated puppeteer@15.4.0: < 19.4.0 is no longer supported
npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
npm ERR! code 1
npm ERR! path I:\test\thirdparty\nodejs\node_modules\asciidoctor-pdf\node_modules\puppeteer
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node install.js
npm ERR! ERROR: Failed to set up Chromium r1011831! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.
npm ERR! [Error: EISDIR: illegal operation on a directory, realpath 'I:\test\thirdparty\nodejs\node_modules\asciidoctor-pdf\node_modules\puppeteer\.local-chromium\win64-1011831'] {
npm ERR!   errno: -4068,
npm ERR!   code: 'EISDIR',
npm ERR!   syscall: 'realpath',
npm ERR!   path: 'I:\\test\\thirdparty\\nodejs\\node_modules\\asciidoctor-pdf\\node_modules\\puppeteer\\.local-chromium\\win64-1011831'
npm ERR! }

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\secret\AppData\Local\npm-cache\_logs\2023-09-11T12_18_35_675Z-debug-0.log
siaccarino commented 10 months ago

If I manually bump only puppeteer to 21.1.1 it will work but I assume that the result will be unpredictable

ggrossetie commented 10 months ago

Puppeteer is relatively stable, I think we can use the latest version. We have a few (visual) tests so we can probably safely upgrade.

siaccarino commented 10 months ago

But then:

  Puppeteer old Headless deprecation warning:
    In the near future `headless: true` will default to the new Headless mode
    for Chrome instead of the old Headless implementation. For more
    information, please see https://developer.chrome.com/articles/new-headless/.
    Consider opting in early by passing `headless: "new"` to `puppeteer.launch()`
    If you encounter any bugs, please report them to https://github.com/puppeteer/puppeteer/issues/new/choose.
siaccarino commented 10 months ago

And your pagedjs fork will also somehow react strange and produces overflows - https://gitlab.coko.foundation/pagedjs/pagedjs/-/issues/357 - at least my detection method "if (child.tagName === "P" && child.offsetTop >= pageHeight)" gets triggered.

siaccarino commented 9 months ago

I guess #672 is related but tests are failing. However: the windows version of the old chromium seems to be take offline. The Linux version is still up.