@desco/env-require

Performs require of packages in different paths according to the NODE_ENV

Usage no npm install needed!

<script type="module">
  import descoEnvRequire from 'https://cdn.skypack.dev/@desco/env-require';
</script>

README

@desco/env-require

Pacote NPM que permite executar importações de pacotes disponíveis na máquina local ao invés do disponível no NPM.
Útil para o desenvolvedor que esta usando seu próprio pacote e deseja fazer mudanças sem precisar publicar para testar na hora.

Licença MIT Versão 3.0.1

🚀 Pronto para uso! 🚀

Veja outros projetos NPM aqui.

Veja outros projetos aqui.


📋 Tabela de conteúdos


⚙️ Instalação

npm install --save @desco/env-require

Note que será necessário ter o NPM instalado para o comando funcionar.


📦 Importação

Node

const configEnvRequire = require("@desco/env-require")

Front

import configEnvRequire from "@desco/env-require"

📚 Como Usar

dynamicImports_dev.js

module.exports = {
  '@desco/atlas': () => require('../../atlas'),
}

dynamicImports.js

module.exports = {
  '@desco/atlas': () => require('@desco/atlas'),
  ...require('./dynamicImports_dev')
}

index.js

const envRequire = require('@desco/env-require')(packagesDynamicImports)

envRequire('@desco/atlas')

No dynamicImports_dev.js exporte um objeto contendo em suas chaves os nomes dos pacotes e em seus valores uma função contendo o carregamento da versão local do pacote.

No dynamicImports.js exporte um objeto contendo em suas chaves os nomes dos pacotes e em seus valores uma função contendo o carregamento da versão NPM do pacote.

Ao fim do objeto do dynamicImports.js concatene os valores importador de dynamicImports_dev.js, dessa forma os pacotes existentes irão sobrescrever os anteriores.

Importe o envRequire já executando e passando o objeto importado de dynamicImports.js, dessa forma ele já irá saber com quais pacotes irá trabalhar.

O dynamicImports_dev.js só deve ser versionado com objeto vazio de forma que em produção sempre seja usado os pacotes NPM. Após versionar vazio, adicione o dynamicImports_dev.js ao .gitignore para que as mudanças de cada programador não sejam enviadas para produção.

Garanta que os pacotes locais estejam com os pacotes instalados! (npm install)

Agora é só usar o envRequire no lugar do require/import!


🗂️ Escopo

Eventualmente você pode querer ter duas instâncias do envRequire, para isso basta passar um segundo parâmetro com o nome do escopo de cada instância!

const envRequire = require('./dynamicImports')(packages, 'main')
const envRequire2 = require('./dynamicImports')(packages, 'second')

envRequire('@desco/atlas')
envRequire2('@desco/urano')

Por padrão o nome do escopo é default, sendo assim não é precisa passar um escopo caso esteja usando uma única instância.


Autor

Rafael A. R. Dias Email eu@diasrafael.com.br Linkedin @diasrafael Facebook @eudiasrafael GitHub Geral @descodifica GitHub NPM @desco-npm NPM @desco