nfewizard-org / nfewizard-io

NFeWizard é uma biblioteca Node.js que simplifica a interação com os serviços da SEFAZ, oferecendo uma solução robusta para automação de processos relacionados à Nota Fiscal Eletrônica (NF-e).
https://nfewizard-org.github.io/
GNU General Public License v3.0
77 stars 9 forks source link

Erro ao instalar a biblioteca #4

Closed ThalesAugusto0 closed 1 month ago

ThalesAugusto0 commented 1 month ago

Ambiente de Desenvolvimento

Passos para Reproduzir

  1. Instalei a biblioteca nfewizard-io usando yarn add nfewizard-io ou npm install nfewizard-io.
  2. Configurei o projeto para usar módulos ES6 com "type": "module" no package.json.
  3. Tentei importar o módulo com a linha: import NFeWizard from 'nfewizard-io';
  4. Recebi o erro ERR_MODULE_NOT_FOUND.

Tentativas de Resolução

Maurelima commented 1 month ago

Obrigado por reportar, Thales!

Efetuei o teste conforme você descreveu e realmente está ocorrendo esse problema com javascript.

Provisoriamente, se possível, recomendo utilizar typescript.

Já estou trabalhando para a resolução do problema.

Maurelima commented 1 month ago

Problema:

  1. Ao tentar utilizar a biblioteca no JavaScript, ocorreu o erro "ERR_MODULE_NOT_FOUND". Este problema foi causado porque, após a compilação do TypeScript, os arquivos JavaScript gerados não incluíam as extensões de arquivo (.js) nos imports. Enquanto o TypeScript consegue resolver os caminhos dos módulos sem a extensão, o Node.js exige a presença das extensões para resolver corretamente os módulos ES.

  2. Durante a assinatura de XML, o método assinarXML estava falhando devido à ausência das propriedades digestAlgorithm e signatureAlgorithm.

Solução:

  1. Foi adicionado um passo adicional no script de build para garantir que todos os imports nos arquivos gerados incluam a extensão .js. Além disso, foram ajustados os imports de arquivos JSON para incluir a asserção de tipo necessária (assert { type: "json" }). Isso garante que o Node.js possa resolver todos os módulos corretamente, evitando os erros de importação.

  2. Ao assinar o XML, foram incluídos os parâmetros digestAlgorithm e signatureAlgorithm na configuração do objeto SignedXml. Estes parâmetros são essenciais para especificar os algoritmos utilizados na digestão e na assinatura, garantindo que o processo de assinatura ocorra sem erros.

Mudanças:

Resumo:

Essas mudanças asseguram que os arquivos gerados pela compilação TypeScript sejam compatíveis com os requisitos de resolução de módulos do Node.js, eliminando o erro "ERR_MODULE_NOT_FOUND" ao utilizar a biblioteca no JavaScript. Além disso, garantem que o processo de assinatura de XML ocorra corretamente, resolvendo os problemas relacionados à ausência de algoritmos de digestão e assinatura.

Commit e Versão:

A correção foi implementada no commit 5c43ee7 e está incluída na versão 0.0.5.