![translation](https://cdn.durumis.com/common/trans.png)
Esta é uma postagem traduzida por IA.
Selecionar idioma
Texto resumido pela IA durumis
- No Next.js, o .env é definido no tempo de compilação, mas às vezes é necessário configurar variáveis de ambiente de acordo com o ambiente de produção (local, dev, qa, prod) após a compilação.
- Os usuários do Windows não podem usar scripts baseados em Unix, portanto, o cross-env precisa ser instalado para escrever scripts que funcionem em ambientes Windows e Unix.
- O cross-env foi aplicado aos comandos start e dev para definir variáveis de ambiente e simplificar os scripts, melhorando a legibilidade.
No Next.js, o .env é hardcoded durante o tempo de compilação.
No entanto, às vezes existe uma grande necessidade de configurar o ambiente não durante o tempo de compilação, mas ao executar a imagem compilada.
Isso ocorre porque geralmente lidamos com local, dev, qa e prod.
Então, como podemos fazer isso?
A maioria do contexto é semelhante ao artigo abaixo.
No entanto, o artigo acima ignora o Windows.
Ele indica que a sintaxe Unix deve ser incluída no script do package.json.
Isso significa que os usuários do Windows, que são honestos, limpos e atenciosos, não podem usar o script acima, sem usar o Unix sujo.
Portanto, os usuários do Windows, limpos e atenciosos, devem cuidar dos usuários do Unix, inserindo um script que funcione perfeitamente nos dois sistemas operacionais.
A solução é simples.
Basta incluir um script que faça o mesmo que essa sintaxe.
Instale o cross-env com o comando acima.
E, para resolver o problema, basta modificar o comando start mencionado acima como mostrado abaixo.
No entanto, o script é muito longo, difícil de ler e precisa ser anexado ao comando dev também.
{
"dev": "npm run _env:-local && next dev",
"dev:dev": "npm run _env:dev && next dev",
"start": "npm run _env:-local && next start",
"_env:-local": "cross-env-shell node ./utils/cli.js next-env -e $APP_ENV",
"_env:dev": "node ./utils/cli.js next-env -e dev"
Portanto, organizei como mostrado acima.