Estou tentando passar o caminho do arquivo pelo terminal para a função "pegaArquivo" mas o terminal diz que aparentemente não conseguiu encontrar ela porque eu não exportei direito... Bom meus códigos estão assim:
ERRO DO TERMINAL
import pegaArquivo from './index.js';
^^^^^^^^^^^
SyntaxError: The requested module './index.js' does not provide an export named 'default'
index.JS
import chalk from 'chalk';
import fs, { link } from 'fs';
import { text } from 'stream/consumers';
const texto = "São geralmente recuperados a partir de um objeto [FileList](https://developer.mozilla.org/pt-BR/docs/Web/API/FileList) que é retornado como resultado da seleção, pelo usuário, de arquivos através do elemento [<input>](https://developer.mozilla.org/pt-BR/docs/Web/HTML/Element/Input), a partir do objeto [DataTransfer](https://developer.mozilla.org/pt-BR/docs/Web/API/DataTransfer) utilizado em operações de arrastar e soltar, ou a partir da API `mozGetAsFile()` em um [HTMLCanvasElement](https://developer.mozilla.org/pt-BR/docs/Web/API/HTMLCanvasElement). Em Gecko, códigos com privilégiios podem criar objetos File representando qualquer arquivo local sem a intereção do usuário (veja [Implementation notes](https://developer.mozilla.org/pt-BR/docs/Web/API/File#implementation_notes) para mais informações.)";
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;
}
function trataErro(erro) {
throw new Error(chalk.red(erro.code, 'não há um arquivo'));
}
async function pegaArquivo(caminhoDoArquivo) {
const encoding = 'utf-8';
try {
const texto = await fs.promises.readFile(caminhoDoArquivo, encoding)
console.log(extraiLinks(texto));
} catch(erro) {
trataErro(erro);
}
}
// pegaArquivo("./arquivos/texto1.md");
module.exports = pegaArquivo;
cli.JS
import pegaArquivo from './index.js';
// const pegaArquivo = require('./index')
const caminho = process.argv;
console.log(pegaArquivo(caminho[2]));
Já dei umas pesquisadas na internet e fiz alguns testes mas mesmo assim não funcionou, alguém consegue me ajudar?
edit package.json mais pro início do curso tive que acrescentar a linha 7 nesse arquivo. Vi algo relacionado a type: module ou type:commonjs acredito que pode ter alguma relação (ou não) porque quando eu tentei importar os modulos usando "require" igual indicado no curso ele reclamava de algo parecido.
{
"name": "nodejs-criando-sua-primeira-biblioteca",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"chalk": "^5.0.1"
}
}