typescript - deno puppeteer 'chrome nu a fost găsit' încercând să import dependința npm


Încerc să folosesc node-html-to-image în deno:

import nodeHtmlToImage from "npm:node-html-to-image";

nodeHtmlToImage({
  output: './image.png',
  html: '<html><body>Hello world!</body></html>'
})
  .then(() => console.log('The image was created successfully!'))

deno run --allow-env --allow-read --allow-write that-file.ts provoacă această eroare:

error: Uncaught Error: Unable to launch browser, error message: Could not find expected browser (chrome) locally. Run `npm install` to download the correct Chromium revision (982053).
    at Cluster.<anonymous> (file:///Users/theonlygusti/Library/Caches/deno/npm/registry.npmjs.org/puppeteer-cluster/0.23.0/dist/Cluster.js:119:23)
    at Generator.throw (<anonymous>)
    at rejected (file:///Users/theonlygusti/Library/Caches/deno/npm/registry.npmjs.org/puppeteer-cluster/0.23.0/dist/Cluster.js:6:65)

Cum pot folosi pachetul npm node-html-to-image din Deno?

Răspuns #1

Practically, acest lucru este răspuns în Nu s-a putut găsi chrome-ul browserului așteptat local.

Partea specifică Deno este că directorul de instalare NPM este diferit de instalările obișnuite Node.

Când folosești specificatorul npm în Deno, de exemplu import nodeHtmlToImage from "npm:node-html-to-image";, pachetele Node vor fi instalate într-o parte a directorului de cache-uri Deno:

  • Windows: <director utilizator>/AppData/Local/deno/npm/registry.npmjs.org/
  • macOS: ~/Library/Caches/deno/npm/registry.npmjs.org
  • Linux: $XDG_CACHE_HOME/deno/npm/registry.npmjs.org sau $HOME/.cache/deno/npm/registry.npmjs.org

și în mod specific pentru Puppeteer: deno/npm/registry.npmjs.org/puppeteer/13.7.0

În mesajul de eroare se menționează să

Rulează npm install pentru a descărca revizia corectă de Chromium (982053)

Asta înseamnă că ar trebui să rulezi npm install în directorul de mai sus al Puppeteer, care conține un fișier numit install.js.

Aceasta va instala versiunea corectă a pachetului chromium în directorul lui Puppeteer sub .local-chromium.

Vestea proastă este (cel puțin în Windows), că probabil vei primi următoarea eroare, care este

Eroare neprinsă: Imposibil de lansat browserul, mesaj de eroare: Windows acceptă doar ctrl-c (SIGINT) și ctrl-break (SIGBREAK).