Deno puppeteer «chrome not found» пытается импортировать зависимость npm

Я пытаюсь использовать node-html-to-image в deno:

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

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

deno run --allow-env --allow-read --allow-write that-file.ts вызывает эту ошибку:

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)

Как я могу использовать пакет node-html-to-image npm от Deno?

Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Как заставить Remix работать с Mantine и Cloudflare Pages/Workers
Как заставить Remix работать с Mantine и Cloudflare Pages/Workers
Мне нравится библиотека Mantine Component , но заставить ее работать без проблем с Remix бывает непросто.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
TypeScript против JavaScript
TypeScript против JavaScript
TypeScript vs JavaScript - в чем различия и какой из них выбрать?
Синхронизация localStorage в масштабах всего приложения с помощью пользовательского реактивного хука useLocalStorage
Синхронизация localStorage в масштабах всего приложения с помощью пользовательского реактивного хука useLocalStorage
Не все нужно хранить на стороне сервера. Иногда все, что вам нужно, это постоянное хранилище на стороне клиента для хранения уникальных для клиента...
Что такое ленивая загрузка в Angular и как ее применять
Что такое ленивая загрузка в Angular и как ее применять
Ленивая загрузка - это техника, используемая в Angular для повышения производительности приложения путем загрузки модулей только тогда, когда они...
1
0
84
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

По сути, ответ на этот вопрос содержится в Не удалось найти ожидаемый хром браузера локально.

Специфическая часть Deno заключается в том, что каталог установки NPM отличается от обычных установок Node.

Когда вы используете спецификатор npm в Deno, например. import nodeHtmlToImage from "npm:node-html-to-image";, пакеты Node будут установлены в часть каталога deno caches:

  • Окна: <user directory>/AppData/Local/deno/npm/registry.npmjs.org/
  • макОС: ~/Library/Caches/deno/npm/registry.npmjs.org
  • Linux: $XDG_CACHE_HOME/deno/npm/registry.npmjs.org или $HOME/.cache/deno/npm/registry.npmjs.org

и специально для Кукловода: deno/npm/registry.npmjs.org/puppeteer/13.7.0

В сообщении об ошибке упоминается

Запустите npm install, чтобы загрузить правильную версию Chromium (982053).

Это означает, что вы должны запустить npm install в указанном выше каталоге Puppeteer, который содержит файл с именем install.js.

Это установит правильную версию пакета хрома в каталог Puppeteer в разделе .local-chromium.

Плохая новость (по крайней мере, под Windows), что вы, вероятно, получите следующую ошибку, которая

Uncaught Error: невозможно запустить браузер, сообщение об ошибке: Windows поддерживает только ctrl-c (SIGINT) и ctrl-break (SIGBREAK).

Другие вопросы по теме