Al intentar trabajar con node/javascript/nfts, soy un novato y seguí un tutorial, pero aparece este error:
error [ERR_REQUIRE_ESM]: require() of ES Module [...] is not supported. Instead change the require of index.js [ in my file...] to a dynamic import() which is available in all CommonJS modulesTengo entendido que actualizaron 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)); })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-angularVaya 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'