我希望环境变量具有不同的配置文件,并能够在我的下一个项目中使用它们。我看到了dotenv的示例。
但是我不喜欢在.env文件中定义变量,也不想在config.next.js文件中定义变量。如果由于某种原因我将变量放在.env文件中,但是忘记将它们放在config.next.js文件中,则代码开始出现问题。有没有一种方法可以更有效地做到这一点?
我在package.json中的脚本:
"scripts": {
"dev": "next",
"build": "next build",
"start": "next start",
"lint": "eslint pages --ext .ts,.tsx,.js",
"test": "jest",
"commit": "git-cz",
"dev:production": "dotenv next"
},
我的.env变量
TITULO=react, typescript, material ui App
零件
import { NextPage } from 'next';
import { FunctionComponent } from 'react';
interface HelloWorldProps {
nombre: string,
saludo?: string
}
const HelloWorld: FunctionComponent<HelloWorldProps> = ({ nombre, saludo = 'noches' }: HelloWorldProps) => (
<>
<h1>Hola {nombre} buenas {saludo}</h1>
{/* eslint-disable-next-line multiline-ternary */}
<h2>{process.env.TITULO ? 'hola' : 'adios'}</h2>
</>
);
const Home: NextPage = () => <HelloWorld nombre="cristian" />;
export default Home;
Next 9.4内置了对.env文件的支持:https ://nextjs.org/docs/basic-features/environment-variables
但是,如果您想拥有多个.env文件,例如:
内置的env变量支持是不可能的。现在只有3种正式支持的环境:“开发”,“测试”,“生产”。随着next dev
您使用“开发”,next build && next start
使用“生产”环境。
如果您需要针对生产环境进行构建,但是例如使用“ .env.staging”,则需要添加env-cmd软件包,并将此行添加到package.json中:
"build:staging": "env-cmd -f .env.staging yarn build && yarn start"
接下来将使用“ .env.staging”变量进行生产构建。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句