我正在尝试将这个简单的代码转换为可执行文件,我没有创建任何 .json 文件,只是创建 .js 文件。
这是我第一次使用 .JS,每次运行
pkg script.js
都会返回错误“错误!没有可用的节点版本满足'node20'”。
这是我的代码:
const puppeteer = require('puppeteer-extra');
const cliProgress = require('cli-progress');
const { DEFAULT_INTERCEPT_RESOLUTION_PRIORITY, Mouse } = require('puppeteer');
const AdblockerPlugin = require('puppeteer-extra-plugin-adblocker');
const progressBar = new cliProgress.SingleBar({}, cliProgress.Presets.shades_classic);
const totalItens = 110;
puppeteer.use(
AdblockerPlugin({
// Optionally enable Cooperative Mode for several request interceptors
interceptResolutionPriority: DEFAULT_INTERCEPT_RESOLUTION_PRIORITY
})
);
function timeToMilliseconds(time) {
const [minutes, seconds] = time.split(':').map(Number);
const minutesInMilliseconds = minutes * 60 * 1000;
const secondsInMilliseconds = seconds * 1000;
const totalMilliseconds = minutesInMilliseconds + secondsInMilliseconds;
return totalMilliseconds;
}
(async () => {
const browser = await puppeteer.launch({headless: 'new'});
const page = await browser.newPage();
await page.goto('https://www.justwatch.com/br/filme/besouro-azul');
let title = await page.evaluate(() => {
return document.getElementsByClassName("title-block")[0].textContent
});
console.log("TITULO: ", title)
await page.click('[class="youtube-player__play-button youtube-player__play-button--backdrop"', 'left');
progressBar.start(totalItens, 0)
for (let i = 0; i <= totalItens; i++){
progressBar.update(i)
await page.waitForTimeout(1000);
setInterval(() => {
}, 1000);
}
title = title.split(' ')
const filename = title[0] + '.png'
await page.screenshot({path: filename});
await browser.close();
progressBar.stop();
})();
我希望创建一个 EXE 文件,这样我就可以与朋友分享我的代码。
更新 package.json 以包含 pkg 配置并指定受支持的 Node.js 版本,例如 14、16 或 18。
"pkg": {
"targets": [
"node14",
"node16",
"node18"
]
}