Я пытаюсь использовать 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?
По сути, ответ на этот вопрос содержится в Не удалось найти ожидаемый хром браузера локально.
Специфическая часть 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
$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).