Scripts para testar os pacotes localmente antes de publicar no npm.
Instala TODOS os pacotes do monorepo de uma vez.
Quando usar: Desenvolvimento rápido, testes completos da biblioteca.
./scripts/local-install.sh ~/Documents/projetos/NFeWizard/Testes/NFeWizardInstala:
@nfewizard/types@nfewizard/shared(com 335 CA certs + 143 schemas)@nfewizard/danfe@nfewizard/nfce@nfewizard/nfse@nfewizard/ctenfewizard-io
Instala apenas 1 pacote + suas dependências (simula npm install <pacote>).
Quando usar: Testar como usuário final instalará, validar dependências.
./scripts/local-install-single.sh <pacote> <diretório-destino>Instalar apenas NFe:
./scripts/local-install-single.sh nfewizard-io ~/meu-projeto→ Instala: nfewizard-io + @nfewizard/types + @nfewizard/shared + @nfewizard/danfe
Instalar apenas NFCe:
./scripts/local-install-single.sh @nfewizard/nfce ~/meu-projeto→ Instala: @nfewizard/nfce + @nfewizard/types + @nfewizard/shared
Instalar apenas CTe:
./scripts/local-install-single.sh @nfewizard/cte ~/meu-projeto→ Instala: @nfewizard/cte + @nfewizard/types + @nfewizard/shared
Instalar apenas NFSe:
./scripts/local-install-single.sh @nfewizard/nfse ~/meu-projeto→ Instala: @nfewizard/nfse + @nfewizard/types + @nfewizard/shared
Instalar apenas DANFE:
./scripts/local-install-single.sh @nfewizard/danfe ~/meu-projeto→ Instala: @nfewizard/danfe + @nfewizard/types
# 1. Edite o código
vim packages/shared/src/adapters/SchemaLoader.ts
# 2. Reinstale (escolha um):
./scripts/local-install.sh ~/projeto-teste # Completo
./scripts/local-install-single.sh nfewizard-io ~/projeto-teste # Único
# 3. Teste
cd ~/projeto-teste
node index.js- Instalam dependências externas (axios, libxmljs2, pdfkit, etc.)
- Compilam módulos nativos (libxmljs2, xsd-schema-validator)
- Buildam os pacotes (
pnpm build) - Copiam para node_modules (simula npm install)
- Incluem recursos (CA certs, schemas XSD)
| Script | Build | Instala | Tempo |
|---|---|---|---|
local-install.sh |
Todos os pacotes | Todos os pacotes | ~30s |
local-install-single.sh |
Apenas necessários | 1 pacote + deps | ~15s |
| Pacote | Descrição | Dependências |
|---|---|---|
nfewizard-io |
Pacote principal NFe | types, shared, danfe |
@nfewizard/nfce |
Operações NFCe | types, shared |
@nfewizard/nfse |
Operações NFSe | types, shared |
@nfewizard/cte |
Operações CTe | types, shared |
@nfewizard/danfe |
Gerador de DANFE PDF | types |
@nfewizard/shared |
Core (XML, SOAP, Certs) | types |
@nfewizard/types |
Tipos TypeScript | - |
- pnpm instalado (
npm install -g pnpm) - Node.js 18+ (para módulos nativos)
- Compiladores C++ (para libxmljs2):
- Linux:
build-essential - macOS: Xcode Command Line Tools
- Windows: Visual Studio Build Tools
- Linux:
Verificar instalação:
ls -la ~/projeto-teste/node_modules/@nfewizard/
ls -la ~/projeto-teste/node_modules/nfewizard-io/Verificar CA certs:
ls ~/projeto-teste/node_modules/@nfewizard/shared/resources/certs/ | wc -l
# Deve retornar: 335Verificar schemas:
ls ~/projeto-teste/node_modules/@nfewizard/shared/resources/schemas/ | wc -l
# Deve retornar: 143Verificar libxmljs2:
ls ~/projeto-teste/node_modules/.pnpm/libxmljs2@*/node_modules/libxmljs2/build/Release/
# Deve mostrar: xmljs.nodeErro: "Cannot find module @nfewizard/shared" → Execute o script novamente, as dependências não foram copiadas
Erro: "bindings file not found" (libxmljs2) → O módulo nativo não compilou. Verifique se tem compiladores C++
Erro: "ENOENT: no such file or directory, scandir .../certs"
→ Os CA certs não foram copiados. Verifique se existem em packages/shared/resources/certs/
Erro: "unable to get local issuer certificate" → Em homologação, isso é normal se não houver CA certs. O código aceita self-signed em ambiente=2
Crie ~/projeto-teste/test.js:
import NFeWizard from 'nfewizard-io';
const nfe = new NFeWizard();
await nfe.NFE_LoadEnvironment({
dfe: {
pathCertificado: 'certificado.pfx',
senhaCertificado: '1234',
ambiente: 2 // Homologação
}
});
const resultado = await nfe.NFE_ConsultaStatusServico({
cUF: 35, // São Paulo
tpAmb: 2 // Homologação
});
console.log('Status SEFAZ:', resultado.retornoSOAP.xMotivo);Execute:
node test.jsSaída esperada:
Status SEFAZ: Serviço em Operação