Estou tentando seguir um tutorial e ele diz:
Existem algumas maneiras de carregar credenciais.
- Carregado de variáveis de ambiente,
- Carregado de um arquivo JSON no disco,
As chaves precisam ser as seguintes:
USER_ID, USER_KEY
... Isso significa que, se você definir corretamente suas variáveis de ambiente, não precisará gerenciar credenciais em seu aplicativo.
Com base em alguns Google, parece que eu preciso definir as variáveis process.env
? Como e onde eu defino essas credenciais? Exemplo Por favor.
fonte
fish
, em vez debash
, você precisa usar:env USER_ID=239482 my_command
. Por exemplo, para definir variáveis de ambiente para adebug
bibliotecaenv DEBUG='*' node some_file.js
node.jsenv DEBUG=* node some_file.js
dotenv
se trata, pois ele lerá seu.env
arquivo e aplicará.Eu recomendo olhar para o pacote dotenv.
https://github.com/motdotla/dotenv
É parecido com a biblioteca sugerida na resposta do @Benxamin, mas é muito mais limpa e não requer scripts bash. Também é importante notar que a base de código é popular e bem conservada.
Basicamente, você precisa de um arquivo .env (que eu recomendo ser ignorado no seu git / mercurial / etc):
Em seguida, no arquivo de entrada do aplicativo, insira a seguinte linha o mais rápido possível:
Estrondo. Feito. 'process.env' agora conterá as variáveis acima:
O arquivo '.env' não é necessário, portanto você não precisa se preocupar com a queda do aplicativo na ausência dele.
fonte
Basta fornecer os valores env na linha de comando
fonte
Você pode definir a variável de ambiente através da variável global do processo da seguinte maneira:
Funciona em todas as plataformas.
fonte
Se você deseja uma opção de gerenciamento, tente o pacote envs npm. Retorna valores do ambiente se eles estiverem definidos. Caso contrário, você pode especificar um valor padrão que será armazenado em uma variável de objeto de padrões globais, se não estiver em seu ambiente.
O uso de arquivos .env ("dot ee-en-vee") ou de ambiente é bom por vários motivos. Os indivíduos podem gerenciar suas próprias configurações. Você pode implantar diferentes ambientes (dev, stage, prod) nos serviços em nuvem com suas próprias configurações de ambiente. E você pode definir padrões sensíveis.
Dentro do seu
.env
arquivo, cada linha é uma entrada, como este exemplo:Você não deve incluir
.env
no seu repositório de controle de versão (adicione-o ao seu.gitignore
arquivo).Para obter variáveis do
.env
arquivo em seu ambiente, você pode usar um script bash para fazer o equivalente aexport NODE_ENV=development
antes de iniciar seu aplicativo.Então isso vai no javascript do seu aplicativo:
fonte
Depende do seu sistema operacional e do seu shell
No linux com o shell bash , você cria variáveis de ambiente como esta (no console):
Para mais informações sobre variáveis de ambiente no ubuntu (por exemplo):
Variáveis de ambiente no ubuntu
fonte
Como o ctrlplusb disse, recomendo que você use o pacote
dotenv
, mas outra maneira de fazer isso é criar um arquivo js e exigi-lo na primeira linha do seu servidor de aplicativos.env.js:
app.js:
fonte
Usuários do Windows: preste atenção! Esses comandos são recomendados para Unix, mas no Windows são apenas temporários. Eles definem uma variável apenas para o shell atual; assim que você reiniciar sua máquina ou iniciar um novo terminal, eles desaparecerão.
SET TEST="hello world"
$env:TEST = "hello world"
Para definir uma variável de ambiente persistente no Windows, você deve usar uma das seguintes abordagens:
A) arquivo .env em seu projeto - este é o melhor método, pois significa que você pode mover seu projeto para outros sistemas sem precisar configurar os ambientes do ambiente nesse sistema antes de executar seu código.
Crie um
.env
arquivo na raiz da pasta do projeto com o conteúdo:TEST="hello world"
Escreva um código de nó que leia esse arquivo. Sugiro instalar o dotenv (
npm install dotenv --save
) e, em seguida, adicionarrequire('dotenv').config();
durante o código de configuração do nó.process.env.TEST
Os arquivos Env servem para manter chaves api e outros segredos que você não deseja ter em sua base de código. Apenas certifique-se de adicioná-lo ao seu
.gitignore
.B) Use o PowerShell - isso criará uma variável que estará acessível em outros terminais. Mas cuidado, a variável será perdida depois que você reiniciar o computador.
[Environment]::SetEnvironmentVariable("TEST", "hello world", "User")
Esse método é amplamente recomendado nos fóruns do Windows, mas acho que as pessoas não sabem que a variável não persiste após a reinicialização do sistema ....
C) Use a GUI do Windows
fonte
Etapa 1: adicione suas variáveis de ambiente ao arquivo apropriado. Por exemplo, seu ambiente de temporariedade pode ser chamado
.env.staging
, que contém as variáveis de ambienteUSER_ID
eUSER_KEY
, específicas para o seu ambiente de temporariedade.Etapa 2: no seu
package.json
arquivo, adicione o seguinte:chame-o em seu script de implantação assim:
Configuração super simples e funciona como um encanto!
Fonte: https://medium.com/@tacomanator/environments-with-create-react-app-7b645312c09d
fonte
Para usuários do Windows, a pergunta Stack Overflow e a resposta principal são bastante úteis sobre como definir variáveis de ambiente através da linha de comando
Como posso definir NODE_ENV = produção no Windows?
fonte
Me deparei com uma boa ferramenta para fazer isso.
nó-env-arquivo
Analisa e carrega arquivos de ambiente (contendo exportações de variáveis ENV) no ambiente Node.js., ou seja
process.env
- - Usa este estilo:fonte
Como expansão da resposta do @ctrlplusb,
sugiro que você também dê uma olhada no
env-dot-prop
pacote.Ele permite que você defina / obtenha propriedades
process.env
usando adot-path
.Vamos supor que você
process.env
contenha o seguinte:Então você pode manipular as variáveis de ambiente assim:
Isso ajuda você a analisar as variáveis de ambiente e usá-las como um objeto de configuração no seu aplicativo.
Também ajuda a implementar uma configuração de 12 fatores .
fonte
Uma maneira muito boa de executar variáveis de ambiente que usei com sucesso está abaixo:
A. Tenha arquivos de configuração diferentes :
dev.js // isso possui todas as variáveis de ambiente apenas para desenvolvimento
O arquivo contém:
stage.js // possui todas as variáveis de ambiente apenas para desenvolvimento
qa.js // isso possui todas as variáveis de ambiente apenas para teste de qa
O arquivo contém:
NOTA : os valores estão mudando com o ambiente, principalmente, mas as chaves permanecem as mesmas.
você pode ter mais
z__prod.js // possui todas as variáveis de ambiente somente para produção / produção
NOTA: Esse arquivo nunca é empacotado para implantação
Coloque todos esses arquivos de configuração na pasta / config /
NOTA : O nome do prod é diferente dos outros, pois não seria usado por todos.
B. Defina as variáveis de ambiente OS / Lambda / AzureFunction / GoogleCloudFunction no arquivo de configuração
Agora, idealmente, essas variáveis de configuração no arquivo devem ser como variáveis de ambiente do SO (ou variáveis de função LAMBDA ou variáveis de função do Azure, funções do Google Cloud etc.)
então, escrevemos automação no sistema operacional Windows (ou outro)
Suponha que escrevamos o arquivo bat ' setenv ', que usa um argumento que é o ambiente que queremos definir
Agora execute " setenv dev "
a) Isso pega a entrada da variável de argumento passada ('dev' por enquanto)
b) lê o arquivo correspondente ('config \ dev.js')
c) define as variáveis de ambiente no sistema operacional Windows (ou outro)
Por exemplo,
O conteúdo do setenv.bat pode ser:
O conteúdo do setenv.js pode ser:
Isso é tudo , seu ambiente está pronto para uso.
Quando você faz ' setenv qa ', todas as variáveis de ambiente qa estarão prontas para uso em qa.js e prontas para uso pelo mesmo programa (que sempre solicita process.env.someEnvKey1, mas o valor obtido é qa um).
Espero que ajude.
fonte
Facilite sua vida com o dotenv-webpack . Simplesmente instale-o
npm install dotenv-webpack --save-dev
e crie um.env
arquivo na raiz do seu aplicativo (lembre-se de adicioná-lo.gitignore
antes de vocêgit push
). Abra este arquivo e defina algumas variáveis ambientais, como por exemplo:Agora, na sua configuração do webpack, adicione:
Apenas
const Dotenv = require('dotenv-webpack');
,plugins: [new Dotenv()]
e, claro,module.exports = webpackConfig; // Export all custom Webpack configs.
são necessários. No entanto, em alguns cenários, você pode obter alguns erros. Para estes, você tem a solução, bem como implica em como corrigir um erro.Agora, sempre que você quiser, pode simplesmente usar
process.env.ENV_VAR_1
,process.env.ENV_VAR_2
,process.env.ENV_VAR_3
na sua aplicação.fonte
Eu estava ficando indefinido depois de definir um sistema env var. Quando coloco APP_VERSION na variável Env do usuário, posso exibir o valor do nó via process.env.APP_VERSION
fonte
Se você estiver usando um mac / linux e quiser recuperar parâmetros locais na máquina que está usando, é isso que você fará:
fonte