@desco/env-require
v3.0.1
Published
Performs require of packages in different paths according to the NODE_ENV
Downloads
11
Maintainers
Readme
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 dedynamicImports_dev.js
, dessa forma os pacotes existentes irão sobrescrever os anteriores.
Importe o
envRequire
já executando e passando o objeto importado dedynamicImports.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 odynamicImports_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 dorequire
/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.