Me deparei com o erro [err_module_not_found]: cannot find module durante a execução do capítulo 4, onde precisei alterar o JSON, as extensões dos arquivos e tabem os import's e export's.
Demorei um tempo para conseguir encontrar todos os pontos necessários para funcionar.
Com o intuito de ajudar quem está passando por esse problema, vou disponibilizar os códigos.
cli.mjs
import chalk from 'chalk'
import {pegaArquivo} from './index.mjs';
const caminho = process.argv
async function processaTexto(caminhoDeArquivo) {
const resultado = await pegaArquivo(caminhoDeArquivo[2]);
console.log(chalk.yellow('lista de links'), resultado);
}
processaTexto(caminho)
index.mjs
import chalk from 'chalk'
import fs from 'fs'
function extraiLinks(texto) {
const regex = /\[([^\]]*)\]\((https?:\/\/[^$#\s].[^\s]*)\)/gm;
const arrayResultados = [];
let temp;
while((temp = regex.exec(texto)) !== null) {
arrayResultados.push({ [temp[1]]: temp[2] })
}
return arrayResultados.length === 0 ? 'não há links' : arrayResultados;
}
function trataErro(erro) {
throw new Error(chalk.red(erro.code, 'não há arquivo no caminho'));
}
export async function pegaArquivo(caminhoDoArquivo) {
const encoding = 'utf-8';
try {
const texto = await fs.promises.readFile(caminhoDoArquivo, encoding)
return(extraiLinks(texto));
} catch(erro) {
trataErro(erro);
}
}
package.json
{
"type": "module",
"name": "primeira_biblioteca",
"version": "1.0.0",
"description": "",
"main": "cli.mjs",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"cli": "node cli.mjs ./arquivos/texto1.md"
},
"author": "",
"license": "ISC",
"dependencies": {
"chalk": "^5.0.1"
}
}
Deixo tambem meu repositório no GitHub pra quem interessar. https://github.com/WalterSopraniJr/learning-nodeJS