Trato de trabajar con node/javascript/nfts, soy un novato y seguí un tutorial, pero aparece este error "error [ERR_REQUIRE_ESM]: require() of ES Module [...] no es compatible. En su lugar, cambie la solicitud de index.js [en mi archivo...] a una importación dinámica() que está disponible en todos los módulos de CommonJS". Tengo entendido que han actualizado el archivo de nodo, por lo que necesito un código diferente al del tutorial, pero no sé cuál se supone que debo cambiar, dónde y a qué. Por favor se tan especifico como puedas
const FormData = require('form-data'); const fetch = require('node-fetch'); const path = require("path") const basePath = process.cwd(); const fs = require("fs"); fs.readdirSync(`${basePath}/build/images`).foreach(file).forEach(file => { const formData = new FormData(); const fileStream = fs.createReadStream(`${basePath}/build/images/${file}`); formData.append('file',fileStream); let url = 'https://api.nftport.xyz/v0/files'; let options = { method: 'POST', headers: { Authorization: '[...]', }, body: formData }; fetch(url, options) .then(res => res.json()) .then(json => { const fileName = path.parse(json.file_name).name; let rawdata = fs.readFileSync(`${basePath}/build/json/${fileName}.json`); let metaData = JSON.parse(rawdata); metaData.file_url = json.ipfs_url; fs.writeFileSync(`${basePath}/build/json${fileName}.json`, JSON.stringify(metaData, null, 2)); console.log(`${json.file_name} uploaded & ${fileName}.json updated!`); }) .catch(err => console.error('error:' + err)); })Vaya a su archivo package.json y escriba
"type": "module",por encima de la depuración.
y en lugar de escribir require('chalk') en el archivo js, cámbielo para import chalk from 'chalk'
Es por el paquete node-fetch . Como las versiones recientes de este paquete solo admiten ESM, debe cambiarlo a una versión anterior node-fetch@2.6.1 o anterior.
npm i node-fetch@2.6.1
Esto debería resolver el problema.
Tuve este error en common.js en angular-devkit después de actualizar a angular 13. Descubrí que esto se perdió durante la actualización:
ng update no comprueba ni actualiza los paquetes de @angular-devkit
Me deshice de él usando:
ng update @angular-devkit/build-angular