如何修复 npm 的错误

Cri*_*lla 2 npm

您好,我希望能得到您的帮助,我正在尝试重新创建 WhatsApp 机器人应用程序,但收到此错误,我不知道如何继续或解决。

const fs = require('fs')
const ora = require('ora')
const chalk = require('chalk')
const { Client } = require('whatsapp-web.js')
const qrcode = require('qrcode-terminal')

const SESSION_FILE_PATH = './session.json'
let client;
let sessionData;

const withSession = () => {
    //si existe se carga el archivo con las credenciales
    const spinner = ora(`Cargando ${chalk.yellow('Validando Session con Whatsapp...')}`);
    sessionData = require(SESSION_FILE_PATH);
    spinner.start();
    client = new Client({
        session:sessionData
    })

    client.on('ready',() => {
        console.log('Cliente esta corriendo!')
        spinner.stop();
    })
}

//Esta funcion genera el qrcode
const withOutSession =  () => {

    console.log('No Tenemos session guardada');
    client = new Client();
    client.on('qr', qr => {
        qrcode.generate(qr, { small: true });
    });
    
    client.on('authenticated', (session) => {
        //guardar credenciales de session para usar luego
        sessionData = session;
        fs.writeFile(SESSION_FILE_PATH, JSON.stringify(session), (err) => {
            if (err) {
                console.log(err);
            }
        });
    });

    client.initialize();

}

//
(fs.existsSync(SESSION_FILE_PATH)) ? withSession() : withOutSession();
Run Code Online (Sandbox Code Playgroud)

出现的错误如下:

PS D:\Codigos python\whatsappbot-node> 节点 app.js D:\Codigos python\whatsappbot-node\app.js:2 const ora = require('ora') ^

错误 [ERR_REQUIRE_ESM]:不支持来自 D:\Codigos python\whatsappbot-node\app.js 的 ES 模块 D:\Codigos python\whatsappbot-node\node_modules\ora\index.js 的 require()。相反,将 D:\Codigos python\whatsappbot-node\app.js 中的 index.js 的 require 更改为动态 import() ,该动态 import() 在所有 CommonJS 模块中都可用。在对象。(D:\Codigos python\whatsappbot-node\app.js:2:13) { 代码: 'ERR_REQUIRE_ESM' }

在此输入图像描述

csa*_*ida 7

出现此错误的原因是ora 现在是纯 ESM 模块,不再支持 CommonJS。

解决此问题的一种方法是将您的项目转换为 ESM。然而,由于某些原因您可能不想这样做,这是完全公平的。

在这些情况下,我们只能使用支持 CommonJS 的最新版本,即:

npm install ora@5.4.1 
Run Code Online (Sandbox Code Playgroud)