Estou tentando seguir um tutorial sobre NodeJs. Acho que não perdi nada, mas sempre que ligo, process.env.NODE_ENV
o único valor que recebo é indefinido. De acordo com minha pesquisa, o valor padrão deve ser 'desenvolvimento'. Como esse valor é definido dinamicamente e onde é definido inicialmente?
javascript
node.js
basheps
fonte
fonte
heroku config:set NODE_ENV="production"
Respostas:
process.env é uma referência ao seu ambiente, então você deve definir a variável lá.
Para definir uma variável de ambiente no Windows :
no OS X ou Linux :
fonte
export NODE_ENV=development
no meu terminal Mac antes de fazer um areact-native run-ios
partir do mesmo terminal. Ao depurar, o valor deprocess.env.NODE_ENV
é indefinido.dicas
em
package.json
:em
app.js
:então, isso pode ser melhor:
ou
fonte
"start": "set NODE_ENV=dev&& node app.js"
console.log(process.env.NODE_ENV.length)
// 4 (incluindo um espaço no final)console.log(('' + process.env.NODE_ENV).trim() === 'dev') // true
pois não gerará um erro, mesmo que process.env.NODE_ENV seja indefinido.Para pessoas que usam * nix (Linux, OS X, etc.), não há razão para fazê-lo por meio de um segundo comando de exportação; você pode encadeá-lo como parte do comando de chamada:
Mais fácil, não? :)
fonte
Encontramos este problema ao trabalhar com o nó no Windows.
Em vez de exigir que qualquer pessoa que tente executar o aplicativo defina essas variáveis, fornecemos um fallback no aplicativo.
Em um ambiente de produção, nós o definiríamos pelos métodos usuais (SET / export).
fonte
Você pode usar o pacote npm cross-env . Ele cuidará do corte da variável de ambiente e também garantirá que ele funcione em diferentes plataformas.
Na raiz do projeto, execute:
Em seguida, em seu package.json, em scripts, adicione:
Em seu terminal, na raiz do projeto, inicie o aplicativo executando:
A variável de ambiente estará disponível no seu aplicativo como
process.env.NODE_ENV
, para que você possa fazer algo como:fonte
No package.json, temos que configurar como abaixo (funciona no Linux e Mac OS)
o importante é "export NODE_ENV = production", após os comandos de construção abaixo serem um exemplo:
para o ambiente de desenvolvimento, temos que pressionar o comando "npm run dev"
para um ambiente de produção, precisamos pressionar o comando "npm run start"
fonte
No macOS para aqueles que estão usando a versão expressa
4.x.x
e oDOTENV
plug - in, é necessário usar o seguinte:Após instalar o plug-in, importe como o seguinte no arquivo em que você iniciou o aplicativo:
require('dotenv').config({path: path.resolve(__dirname+'/.env')});
No diretório raiz, crie um arquivo '.env' e adicione o variável como:
NODE_ENV=development
ouNODE_ENV = development
fonte
No UBUNTU, use:
$ export NODE_ENV = teste
fonte
É devido ao SO
No seu package.json, certifique-se de ter seus scripts (Onde app.js é o seu arquivo js principal a ser executado e NODE_ENV é declarado em um arquivo .env).
Para Windows
Configure também sua variável de arquivo .env com NODE_ENV = development
Se o seu arquivo .env estiver em uma pasta da pasta eg.config, especifique no app.js (seu arquivo js principal)
const dotenv = require ('dotenv'); dotenv.config ({caminho: './config/config.env'});
fonte
Se você enfrentou esse problema no React, precisará de [email protected] e superior. Também para outras variáveis de ambiente que
NODE_ENV
não sejam para trabalhar no React, elas precisam ser prefixadasREACT_APP_
.fonte
O mais cedo possível no seu aplicativo, exija e configure o dotenv.
require('dotenv').config()
fonte
Você também pode configurá-lo por código, por exemplo:
process.env.NODE_ENV = 'test';
fonte