我正在使用T3-app(nextjs,tRPC等),我不知道这些env变量错误是刚刚发生的,还是我以前没有注意到它们。但是,我在.env
文件中设置了所有环境变量,并在schema.mjs
文件中设置了以下配置:
export const serverSchema = z.object({
DATABASE_URL: z.string().url(),
NODE_ENV: z.enum(["development", "test", "production"]),
NEXTAUTH_SECRET: z.string(),
NEXTAUTH_URL: z.preprocess(
// This makes Vercel deployments not fail if you don't set NEXTAUTH_URL
// Since NextAuth automatically uses the VERCEL_URL if present.
(str) => process.env.VERCEL_URL ?? str,
// VERCEL_URL doesnt include `https` so it cant be validated as a URL
process.env.VERCEL ? z.string() : z.string().url(),
),
GOOGLE_CLIENT_ID: z.string(),
GOOGLE_CLIENT_SECRET: z.string(),
STRIPE_SECRET_KEY: z.string(),
});
export const serverEnv = {
DATABASE_URL: process.env.DATABASE_URL,
NODE_ENV: process.env.NODE_ENV,
NEXTAUTH_SECRET: process.env.NEXTAUTH_SECRET,
GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID,
GOOGLE_CLIENT_SECRET: process.env.GOOGLE_CLIENT_SECRET,
NEXTAUTH_URL: process.env.NEXTAUTH_URL,
STRIPE_SECRET_KEY: process.env.STRIPE_SECRET_KEY,
};
字符串
然而,process.env
对象是未定义的。唯一有值的对象是NODE_ENV
,但它与其他env变量没有任何不同。
我不知道为什么会发生这种情况。我已经查过这个问题了,但是没有任何结果。我做错了什么吗?
x1c 0d1x的数据
2条答案
按热度按时间dgenwo3n1#
我是T3和Ct 3A的早期维护者和创意人员之一
因此,Create T3 App的核心是NextJS,这可能只是一个小问题,即您如何实现
.env
,而不是与NextJS期望的文件保持一致。对于本地开发环境,env文件应该是->
.env.local
,以了解如何处理环境变量和文件结构的更多细节,这里是与此问题相关的NextJS文档。vnzz0bqm2#
如果错误是这样的
字符串
而你只是在尝试t3。解决办法是:
1.确保你的节点版本>= 18。要检查运行
node -v
。1.在应用程序创建提示期间,针对“您要使用什么身份验证提供程序?”问题选择“无”。