如何使用PKG创建可执行文件(由于Node 20而出错)

问题描述 投票:0回答:1

我正在尝试将这个简单的代码转换为可执行文件,我没有创建任何 .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 文件,这样我就可以与朋友分享我的代码。

javascript
1个回答
0
投票

更新 package.json 以包含 pkg 配置并指定受支持的 Node.js 版本,例如 14、16 或 18。

"pkg": {
    "targets": [
      "node14",
      "node16",
      "node18"
    ]
  }
© www.soinside.com 2019 - 2024. All rights reserved.