diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md
index cf0e8c14ea..3f9854a94c 100644
--- a/cli/CHANGELOG.md
+++ b/cli/CHANGELOG.md
@@ -296,7 +296,7 @@
### Patch Changes
-- [#1189](https://github.com/t3-oss/create-t3-app/pull/1189) [`bf12635`](https://github.com/t3-oss/create-t3-app/commit/bf1263576866116a904f3d1fa741c5496a535cb9) Thanks [@p13lgst](https://github.com/p13lgst)! - fix: remove ts-ignores on env.mjs
+- [#1189](https://github.com/t3-oss/create-t3-app/pull/1189) [`bf12635`](https://github.com/t3-oss/create-t3-app/commit/bf1263576866116a904f3d1fa741c5496a535cb9) Thanks [@p13lgst](https://github.com/p13lgst)! - fix: remove ts-ignores on env.js
## 7.5.1
diff --git a/cli/src/helpers/createProject.ts b/cli/src/helpers/createProject.ts
index df50b78015..d8f20a88f7 100644
--- a/cli/src/helpers/createProject.ts
+++ b/cli/src/helpers/createProject.ts
@@ -57,8 +57,8 @@ export const createProject = async ({
if (appRouter) {
// Replace next.config
fs.copyFileSync(
- path.join(PKG_ROOT, "template/extras/config/next-config-appdir.mjs"),
- path.join(projectDir, "next.config.mjs")
+ path.join(PKG_ROOT, "template/extras/config/next-config-appdir.js"),
+ path.join(projectDir, "next.config.js")
);
selectLayoutFile({ projectDir, packages });
diff --git a/cli/src/installers/envVars.ts b/cli/src/installers/envVars.ts
index 9b4e3a4233..6c64a473ea 100644
--- a/cli/src/installers/envVars.ts
+++ b/cli/src/installers/envVars.ts
@@ -15,11 +15,11 @@ export const envVariablesInstaller: Installer = ({ projectDir, packages }) => {
const envFile =
usingAuth && usingDb
- ? "with-auth-db.mjs"
+ ? "with-auth-db.js"
: usingAuth
- ? "with-auth.mjs"
+ ? "with-auth.js"
: usingDb
- ? "with-db.mjs"
+ ? "with-db.js"
: "";
if (envFile !== "") {
@@ -28,7 +28,7 @@ export const envVariablesInstaller: Installer = ({ projectDir, packages }) => {
"template/extras/src/env",
envFile
);
- const envSchemaDest = path.join(projectDir, "src/env.mjs");
+ const envSchemaDest = path.join(projectDir, "src/env.js");
fs.copySync(envSchemaSrc, envSchemaDest);
}
@@ -45,7 +45,7 @@ const getEnvContent = (
usingDrizzle: boolean
) => {
let content = `
-# When adding additional environment variables, the schema in "/src/env.mjs"
+# When adding additional environment variables, the schema in "/src/env.js"
# should be updated accordingly.
`
.trim()
diff --git a/cli/src/installers/tailwind.ts b/cli/src/installers/tailwind.ts
index e55da469ea..b1c0927b98 100644
--- a/cli/src/installers/tailwind.ts
+++ b/cli/src/installers/tailwind.ts
@@ -26,8 +26,8 @@ export const tailwindInstaller: Installer = ({ projectDir }) => {
const postcssCfgSrc = path.join(extrasDir, "config/postcss.config.cjs");
const postcssCfgDest = path.join(projectDir, "postcss.config.cjs");
- const prettierSrc = path.join(extrasDir, "config/_prettier.config.mjs");
- const prettierDest = path.join(projectDir, "prettier.config.mjs");
+ const prettierSrc = path.join(extrasDir, "config/_prettier.config.js");
+ const prettierDest = path.join(projectDir, "prettier.config.js");
const cssSrc = path.join(extrasDir, "src/styles/globals.css");
const cssDest = path.join(projectDir, "src/styles/globals.css");
diff --git a/cli/template/base/_eslintrc.cjs b/cli/template/base/_eslintrc.js
similarity index 100%
rename from cli/template/base/_eslintrc.cjs
rename to cli/template/base/_eslintrc.js
diff --git a/cli/template/base/next.config.mjs b/cli/template/base/next.config.js
similarity index 93%
rename from cli/template/base/next.config.mjs
rename to cli/template/base/next.config.js
index 61964ea730..ffbeb9fb43 100644
--- a/cli/template/base/next.config.mjs
+++ b/cli/template/base/next.config.js
@@ -2,7 +2,7 @@
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful
* for Docker builds.
*/
-await import("./src/env.mjs");
+await import("./src/env.js");
/** @type {import("next").NextConfig} */
const config = {
diff --git a/cli/template/base/package.json b/cli/template/base/package.json
index e95a276440..c11faf27ce 100644
--- a/cli/template/base/package.json
+++ b/cli/template/base/package.json
@@ -1,6 +1,7 @@
{
"name": "template",
"version": "0.1.0",
+ "type": "module",
"private": true,
"scripts": {
"dev": "next dev",
diff --git a/cli/template/base/src/env.mjs b/cli/template/base/src/env.js
similarity index 84%
rename from cli/template/base/src/env.mjs
rename to cli/template/base/src/env.js
index df4d160d14..5c2f937cac 100644
--- a/cli/template/base/src/env.mjs
+++ b/cli/template/base/src/env.js
@@ -28,13 +28,13 @@ export const env = createEnv({
// NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR,
},
/**
- * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation.
- * This is especially useful for Docker builds.
+ * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially
+ * useful for Docker builds.
*/
skipValidation: !!process.env.SKIP_ENV_VALIDATION,
/**
- * Makes it so that empty strings are treated as undefined.
- * `SOME_VAR: z.string()` and `SOME_VAR=''` will throw an error.
+ * Makes it so that empty strings are treated as undefined. `SOME_VAR: z.string()` and
+ * `SOME_VAR=''` will throw an error.
*/
emptyStringAsUndefined: true,
});
diff --git a/cli/template/extras/config/_prettier.config.mjs b/cli/template/extras/config/_prettier.config.js
similarity index 100%
rename from cli/template/extras/config/_prettier.config.mjs
rename to cli/template/extras/config/_prettier.config.js
diff --git a/cli/template/extras/config/drizzle.config.ts b/cli/template/extras/config/drizzle.config.ts
index aaef4720f4..02f276fffd 100644
--- a/cli/template/extras/config/drizzle.config.ts
+++ b/cli/template/extras/config/drizzle.config.ts
@@ -1,6 +1,6 @@
import { type Config } from "drizzle-kit";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
export default {
schema: "./src/server/db/schema.ts",
diff --git a/cli/template/extras/config/next-config-appdir.mjs b/cli/template/extras/config/next-config-appdir.js
similarity index 87%
rename from cli/template/extras/config/next-config-appdir.mjs
rename to cli/template/extras/config/next-config-appdir.js
index 0914d3133e..9bfe4a0e2a 100644
--- a/cli/template/extras/config/next-config-appdir.mjs
+++ b/cli/template/extras/config/next-config-appdir.js
@@ -2,7 +2,7 @@
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful
* for Docker builds.
*/
-await import("./src/env.mjs");
+await import("./src/env.js");
/** @type {import("next").NextConfig} */
const config = {};
diff --git a/cli/template/extras/src/app/api/trpc/[trpc]/route.ts b/cli/template/extras/src/app/api/trpc/[trpc]/route.ts
index 859f13a432..e1a9df892f 100644
--- a/cli/template/extras/src/app/api/trpc/[trpc]/route.ts
+++ b/cli/template/extras/src/app/api/trpc/[trpc]/route.ts
@@ -1,7 +1,7 @@
import { fetchRequestHandler } from "@trpc/server/adapters/fetch";
import { type NextRequest } from "next/server";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
import { appRouter } from "~/server/api/root";
import { createTRPCContext } from "~/server/api/trpc";
diff --git a/cli/template/extras/src/env/with-auth-db.mjs b/cli/template/extras/src/env/with-auth-db.js
similarity index 100%
rename from cli/template/extras/src/env/with-auth-db.mjs
rename to cli/template/extras/src/env/with-auth-db.js
diff --git a/cli/template/extras/src/env/with-auth.mjs b/cli/template/extras/src/env/with-auth.js
similarity index 100%
rename from cli/template/extras/src/env/with-auth.mjs
rename to cli/template/extras/src/env/with-auth.js
diff --git a/cli/template/extras/src/env/with-db.mjs b/cli/template/extras/src/env/with-db.js
similarity index 100%
rename from cli/template/extras/src/env/with-db.mjs
rename to cli/template/extras/src/env/with-db.js
diff --git a/cli/template/extras/src/pages/api/trpc/[trpc].ts b/cli/template/extras/src/pages/api/trpc/[trpc].ts
index af81d9200d..587dd2bdf3 100644
--- a/cli/template/extras/src/pages/api/trpc/[trpc].ts
+++ b/cli/template/extras/src/pages/api/trpc/[trpc].ts
@@ -1,6 +1,6 @@
import { createNextApiHandler } from "@trpc/server/adapters/next";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
import { appRouter } from "~/server/api/root";
import { createTRPCContext } from "~/server/api/trpc";
diff --git a/cli/template/extras/src/server/auth-app/base.ts b/cli/template/extras/src/server/auth-app/base.ts
index 41f6c2319a..9c170aaaae 100644
--- a/cli/template/extras/src/server/auth-app/base.ts
+++ b/cli/template/extras/src/server/auth-app/base.ts
@@ -5,7 +5,7 @@ import {
} from "next-auth";
import DiscordProvider from "next-auth/providers/discord";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
/**
* Module augmentation for `next-auth` types. Allows us to add custom properties to the `session`
diff --git a/cli/template/extras/src/server/auth-app/with-drizzle.ts b/cli/template/extras/src/server/auth-app/with-drizzle.ts
index 6809dbd1c0..2c82b50098 100644
--- a/cli/template/extras/src/server/auth-app/with-drizzle.ts
+++ b/cli/template/extras/src/server/auth-app/with-drizzle.ts
@@ -6,7 +6,7 @@ import {
} from "next-auth";
import DiscordProvider from "next-auth/providers/discord";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
import { db } from "~/server/db";
import { mysqlTable } from "~/server/db/schema";
diff --git a/cli/template/extras/src/server/auth-app/with-prisma.ts b/cli/template/extras/src/server/auth-app/with-prisma.ts
index 8ac0ed24ed..d1f119f936 100644
--- a/cli/template/extras/src/server/auth-app/with-prisma.ts
+++ b/cli/template/extras/src/server/auth-app/with-prisma.ts
@@ -6,7 +6,7 @@ import {
} from "next-auth";
import DiscordProvider from "next-auth/providers/discord";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
import { db } from "~/server/db";
/**
diff --git a/cli/template/extras/src/server/auth-pages/base.ts b/cli/template/extras/src/server/auth-pages/base.ts
index 09e2c902dd..cbeceb4c16 100644
--- a/cli/template/extras/src/server/auth-pages/base.ts
+++ b/cli/template/extras/src/server/auth-pages/base.ts
@@ -6,7 +6,7 @@ import {
} from "next-auth";
import DiscordProvider from "next-auth/providers/discord";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
/**
* Module augmentation for `next-auth` types. Allows us to add custom properties to the `session`
diff --git a/cli/template/extras/src/server/auth-pages/with-drizzle.ts b/cli/template/extras/src/server/auth-pages/with-drizzle.ts
index 89391fd84a..02718edcf2 100644
--- a/cli/template/extras/src/server/auth-pages/with-drizzle.ts
+++ b/cli/template/extras/src/server/auth-pages/with-drizzle.ts
@@ -7,7 +7,7 @@ import {
} from "next-auth";
import DiscordProvider from "next-auth/providers/discord";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
import { db } from "~/server/db";
import { mysqlTable } from "~/server/db/schema";
diff --git a/cli/template/extras/src/server/auth-pages/with-prisma.ts b/cli/template/extras/src/server/auth-pages/with-prisma.ts
index cec71fc803..1c5d36808b 100644
--- a/cli/template/extras/src/server/auth-pages/with-prisma.ts
+++ b/cli/template/extras/src/server/auth-pages/with-prisma.ts
@@ -7,7 +7,7 @@ import {
} from "next-auth";
import DiscordProvider from "next-auth/providers/discord";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
import { db } from "~/server/db";
/**
diff --git a/cli/template/extras/src/server/db/db-prisma.ts b/cli/template/extras/src/server/db/db-prisma.ts
index a4753ca156..02696bcc31 100644
--- a/cli/template/extras/src/server/db/db-prisma.ts
+++ b/cli/template/extras/src/server/db/db-prisma.ts
@@ -1,6 +1,6 @@
import { PrismaClient } from "@prisma/client";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
const globalForPrisma = globalThis as unknown as {
prisma: PrismaClient | undefined;
diff --git a/cli/template/extras/src/server/db/index-drizzle.ts b/cli/template/extras/src/server/db/index-drizzle.ts
index 2a0c8e8f4d..0b766215d0 100644
--- a/cli/template/extras/src/server/db/index-drizzle.ts
+++ b/cli/template/extras/src/server/db/index-drizzle.ts
@@ -1,7 +1,7 @@
import { Client } from "@planetscale/database";
import { drizzle } from "drizzle-orm/planetscale-serverless";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
import * as schema from "./schema";
export const db = drizzle(
diff --git a/upgrade/next.config.mjs b/upgrade/next.config.mjs
index 74833ea8a0..39bf4de00e 100644
--- a/upgrade/next.config.mjs
+++ b/upgrade/next.config.mjs
@@ -6,7 +6,7 @@ import { getHighlighter } from "shiki";
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful
* for Docker builds.
*/
-await import("./src/env.mjs");
+await import("./src/env.js");
/** @type {import('next').NextConfig} */
const nextConfig = {
diff --git a/upgrade/src/lib/utils.ts b/upgrade/src/lib/utils.ts
index c5d0856f6a..698784d2e0 100644
--- a/upgrade/src/lib/utils.ts
+++ b/upgrade/src/lib/utils.ts
@@ -2,7 +2,7 @@ import { request } from "@octokit/request";
import { clsx, type ClassValue } from "clsx";
import { twMerge } from "tailwind-merge";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
export const cn = (...inputs: ClassValue[]) => {
return twMerge(clsx(inputs));
diff --git a/www/src/components/docs/folderStructureDiagram.astro b/www/src/components/docs/folderStructureDiagram.astro
index ae445f887a..f8d7ef646d 100644
--- a/www/src/components/docs/folderStructureDiagram.astro
+++ b/www/src/components/docs/folderStructureDiagram.astro
@@ -15,7 +15,7 @@
const allFiles = {
"public/favicon.ico": [], // This file is included in every configuration
"prisma/schema.prisma": ["prisma"], // This file is included with prisma
- "src/env.mjs": [],
+ "src/env.js": [],
"src/pages/_app.tsx": [],
"src/pages/api/auth/[...nextauth].ts": ["nextauth"],
"src/pages/api/trpc/[trpc].ts": ["trpc"],
@@ -32,10 +32,10 @@
".eslintrc.cjs": [],
".gitignore": [],
"next-env.d.ts": [],
- "next.config.mjs": [],
+ "next.config.js": [],
"package.json": [],
"postcss.config.cjs": ["tailwind"],
- "prettier.config.mjs": ["tailwind"],
+ "prettier.config.js": ["tailwind"],
"README.md": [],
"tailwind.config.ts": ["tailwind"],
"tsconfig.json": [],
diff --git a/www/src/pages/ar/deployment/docker.md b/www/src/pages/ar/deployment/docker.md
index 8a295e84c3..1ef874b925 100644
--- a/www/src/pages/ar/deployment/docker.md
+++ b/www/src/pages/ar/deployment/docker.md
@@ -20,7 +20,7 @@ dir: rtl
### 1. إعداد Next
-في ملف [`next.config.mjs`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.mjs) قم بإضافة `standalone` حتى [تُقلل حجم الصور تلقائيا](https://nextjs.org/docs/advanced-features/output-file-tracing):
+في ملف [`next.config.js`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.js) قم بإضافة `standalone` حتى [تُقلل حجم الصور تلقائيا](https://nextjs.org/docs/advanced-features/output-file-tracing):
```diff
export default defineNextConfig({
@@ -115,7 +115,7 @@ ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
-COPY --from=builder /app/next.config.mjs ./
+COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
diff --git a/www/src/pages/ar/folder-structure.mdx b/www/src/pages/ar/folder-structure.mdx
index acf6922296..baf12c3546 100644
--- a/www/src/pages/ar/folder-structure.mdx
+++ b/www/src/pages/ar/folder-structure.mdx
@@ -191,9 +191,9 @@ import Form from "../../components/docs/folderStructureForm.astro";
-### `next.config.mjs`
+### `next.config.js`
-يستخدم ملف `next.config.mjs` لإعداد Next.js، لمزيد من المعلومات [Next.js Docs](https://nextjs.org/docs/api-reference/next.config.js/introduction). تلميح: يسمح تمديد `.mjx` باستخدام ESM imports.
+يستخدم ملف `next.config.js` لإعداد Next.js، لمزيد من المعلومات [Next.js Docs](https://nextjs.org/docs/api-reference/next.config.js/introduction). تلميح: يسمح تمديد `.mjx` باستخدام ESM imports.
@@ -205,9 +205,9 @@ import Form from "../../components/docs/folderStructureForm.astro";
-### `prettier.config.mjs`
+### `prettier.config.js`
-إن ملف `prettier.config.mjs` ضروري عند استخدام Prettier ولإضافة prettier-plugin-tailwindcss لتنظيم الفئات (classes) مع Tailwind CSS، لمزيد من المعلومات [Tailwind CSS blog post](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier).
+إن ملف `prettier.config.js` ضروري عند استخدام Prettier ولإضافة prettier-plugin-tailwindcss لتنظيم الفئات (classes) مع Tailwind CSS، لمزيد من المعلومات [Tailwind CSS blog post](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier).
diff --git a/www/src/pages/ar/usage/env-variables.md b/www/src/pages/ar/usage/env-variables.md
index 5dac802190..7235534836 100644
--- a/www/src/pages/ar/usage/env-variables.md
+++ b/www/src/pages/ar/usage/env-variables.md
@@ -71,10 +71,10 @@ const validated = schema.parse(process.env);
## إستخدام الـ Environment Variables
-إذا أردت إستخدام الـ env vars فيمكنك إستيراد` env.mjs` واستعمالهم طبيعيا. إذا إستيرادت الملف في Client وحولت استعمال قيم الserver-side، ستنذر بوجود خطأ في run-time.
+إذا أردت إستخدام الـ env vars فيمكنك إستيراد` env.js` واستعمالهم طبيعيا. إذا إستيرادت الملف في Client وحولت استعمال قيم الserver-side، ستنذر بوجود خطأ في run-time.
```ts:pages/api/hello.ts
-import { env } from "../../env.mjs";
+import { env } from "../../env.js";
// `env` is fully typesafe and provides autocompletion
const dbUrl = env.DATABASE_URL;
diff --git a/www/src/pages/en/deployment/docker.md b/www/src/pages/en/deployment/docker.md
index 53300ce218..f99faf93b6 100644
--- a/www/src/pages/en/deployment/docker.md
+++ b/www/src/pages/en/deployment/docker.md
@@ -16,7 +16,7 @@ Please note that Next.js requires a different process for build time (available
### 1. Next Configuration
-In your [`next.config.mjs`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.mjs), add the `standalone` output-option configuration to [reduce image size by automatically leveraging output traces](https://nextjs.org/docs/advanced-features/output-file-tracing):
+In your [`next.config.js`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.js), add the `standalone` output-option configuration to [reduce image size by automatically leveraging output traces](https://nextjs.org/docs/advanced-features/output-file-tracing):
```diff
export default defineNextConfig({
@@ -108,7 +108,7 @@ ENV NODE_ENV production
# ENV NEXT_TELEMETRY_DISABLED 1
-COPY --from=builder /app/next.config.mjs ./
+COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
diff --git a/www/src/pages/en/usage/env-variables.mdx b/www/src/pages/en/usage/env-variables.mdx
index 888dbcab63..a0807eec96 100644
--- a/www/src/pages/en/usage/env-variables.mdx
+++ b/www/src/pages/en/usage/env-variables.mdx
@@ -8,13 +8,13 @@ isMdx: true
import Callout from "../../../components/docs/callout.tsx";
-Create T3 App uses its own package [@t3-oss/env-nextjs](https://env.t3.gg) along with [zod](https://zod.dev) under the hood for validating environment variables at runtime _and_ buildtime by providing a simple logic in `src/env.mjs`.
+Create T3 App uses its own package [@t3-oss/env-nextjs](https://env.t3.gg) along with [zod](https://zod.dev) under the hood for validating environment variables at runtime _and_ buildtime by providing a simple logic in `src/env.js`.
-## env.mjs
+## env.js
-_TLDR; If you want to add a new environment variable, you must add a validator for it in `src/env.mjs`, and then add the KV-pair in `.env`_
+_TLDR; If you want to add a new environment variable, you must add a validator for it in `src/env.js`, and then add the KV-pair in `.env`_
-```ts:env.mjs
+```ts:env.js
import { createEnv } from "@t3-oss/env-nextjs";
import { z } from "zod";
@@ -40,17 +40,17 @@ T3 Env uses the `createEnv` function to create the schema validate both client a
## Using Environment Variables
-When you want to use your environment variables, you can import them from the created `env.mjs` and use them as you would normally do. If you import this on the client and try accessing a server-side environment variable, you will get a runtime error.
+When you want to use your environment variables, you can import them from the created `env.js` and use them as you would normally do. If you import this on the client and try accessing a server-side environment variable, you will get a runtime error.
```ts:pages/api/hello.ts
-import { env } from "../../env.mjs";
+import { env } from "../../env.js";
// `env` is fully typesafe and provides autocompletion
const dbUrl = env.DATABASE_URL;
```
```ts:pages/index.tsx
-import { env } from "../env.mjs";
+import { env } from "../env.js";
// ❌ This will throw a runtime error
const dbUrl = env.DATABASE_URL;
@@ -71,7 +71,7 @@ To ensure your build never completes without the environment variables the proje
📄 `.env`: Enter your environment variable like you would normally do in a `.env` file, i.e. `KEY=VALUE`
-📄 `env.mjs`: Add the appropriate validation logic for the environment variables by defining a Zod schema inside `createEnv` for each one, e.g. `KEY: z.string()`. Besides that, make sure to destruct them in the `runtimeEnv` option, e.g.: `KEY: process.env.KEY`
+📄 `env.js`: Add the appropriate validation logic for the environment variables by defining a Zod schema inside `createEnv` for each one, e.g. `KEY: z.string()`. Besides that, make sure to destruct them in the `runtimeEnv` option, e.g.: `KEY: process.env.KEY`
Why do I need to destructure the environment variable in the `runtimeEnv`?
@@ -94,7 +94,7 @@ _I want to add my Twitter API Token as a server-side environment variable_
TWITTER_API_TOKEN=1234567890
```
-2. Add the environment variable to `env.mjs`:
+2. Add the environment variable to `env.js`:
```ts
import { createEnv } from "@t3-oss/env-nextjs";
@@ -129,7 +129,7 @@ SOME_NUMBER=123
SOME_BOOLEAN=true
```
-Then, validate them in `env.mjs`:
+Then, validate them in `env.js`:
```ts
import { createEnv } from "@t3-oss/env-nextjs";
diff --git a/www/src/pages/es/deployment/docker.md b/www/src/pages/es/deployment/docker.md
index 13b8b66fdc..7eceb5d662 100644
--- a/www/src/pages/es/deployment/docker.md
+++ b/www/src/pages/es/deployment/docker.md
@@ -16,7 +16,7 @@ Ten en cuenta que Next.js requiere un proceso diferente para compilar (disponibl
### 1. Configuración de Next.js
-En tu [`next.config.mjs`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.mjs), agrega la configuración de output `standalone` para [reducir el tamaño de la imagen aprovechando automáticamente el output tracing](https://nextjs.org/docs/advanced-features/output-file-tracing):
+En tu [`next.config.js`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.js), agrega la configuración de output `standalone` para [reducir el tamaño de la imagen aprovechando automáticamente el output tracing](https://nextjs.org/docs/advanced-features/output-file-tracing):
```diff
export default defineNextConfig({
@@ -111,7 +111,7 @@ ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
-COPY --from=builder /app/next.config.mjs ./
+COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
diff --git a/www/src/pages/fr/deployment/docker.md b/www/src/pages/fr/deployment/docker.md
index c541642588..2e369a1e41 100644
--- a/www/src/pages/fr/deployment/docker.md
+++ b/www/src/pages/fr/deployment/docker.md
@@ -16,7 +16,7 @@ Veuillez noter que Next.js nécessite des variables d’environnements qui sont
### 1. Configuration de Next
-Dans votre fichier [`next.config.mjs`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.mjs), ajouter l'entrée `output` avec comme valeur `standalone` [réduit la taille de l'image Docker en se basant sur la sortie du processus de génération](https://nextjs.org/docs/advanced-features/output-file-tracing):
+Dans votre fichier [`next.config.js`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.js), ajouter l'entrée `output` avec comme valeur `standalone` [réduit la taille de l'image Docker en se basant sur la sortie du processus de génération](https://nextjs.org/docs/advanced-features/output-file-tracing):
```diff
export default defineNextConfig({
@@ -111,7 +111,7 @@ ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
-COPY --from=builder /app/next.config.mjs ./
+COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
diff --git a/www/src/pages/fr/usage/env-variables.mdx b/www/src/pages/fr/usage/env-variables.mdx
index 6091998cd4..7ca113e65a 100644
--- a/www/src/pages/fr/usage/env-variables.mdx
+++ b/www/src/pages/fr/usage/env-variables.mdx
@@ -8,13 +8,13 @@ isMdx: true
import Callout from "../../../components/docs/callout.tsx";
-Create T3 App utilise son propre package [@t3-oss/env-nextjs](https://env.t3.gg), ainsi que [zod](https://zod.dev) en interne pour valider les variables d'environnement à l'exécution _et_ au moment du build, en fournissant une logique simple dans `src/env.mjs`.
+Create T3 App utilise son propre package [@t3-oss/env-nextjs](https://env.t3.gg), ainsi que [zod](https://zod.dev) en interne pour valider les variables d'environnement à l'exécution _et_ au moment du build, en fournissant une logique simple dans `src/env.js`.
-## env.mjs
+## env.js
-_Résumé : Si vous voulez ajouter une nouvelle variable d'environnement, vous devez ajouter un validateur pour celle-ci dans `src/env.mjs`, puis ajouter la paire CLEF/VALEUR dans `.env`._
+_Résumé : Si vous voulez ajouter une nouvelle variable d'environnement, vous devez ajouter un validateur pour celle-ci dans `src/env.js`, puis ajouter la paire CLEF/VALEUR dans `.env`._
-```ts:env.mjs
+```ts:env.js
import { createEnv } from "@t3-oss/env-nextjs";
import { z } from "zod";
@@ -40,17 +40,17 @@ T3 Env introduit un nouveau concept à travers la fonction `createEnv`, qui est
## Utilisation de variables d'environnement
-Lorsque vous souhaitez utiliser vos variables d'environnement, vous pouvez les importer depuis `env.mjs` et les utiliser comme vous le feriez normalement. Si vous l'importez côté client et essayez d'accéder à une variable d'environnement du côté serveur, vous obtiendrez une erreur d'exécution.
+Lorsque vous souhaitez utiliser vos variables d'environnement, vous pouvez les importer depuis `env.js` et les utiliser comme vous le feriez normalement. Si vous l'importez côté client et essayez d'accéder à une variable d'environnement du côté serveur, vous obtiendrez une erreur d'exécution.
```ts:pages/api/hello.ts
-import { env } from "../../env.mjs";
+import { env } from "../../env.js";
// `env` is fully typesafe and provides autocompletion
const dbUrl = env.DATABASE_URL;
```
```ts:pages/index.tsx
-import { env } from "../env.mjs";
+import { env } from "../env.js";
// ❌ This will throw a runtime error
const dbUrl = env.DATABASE_URL;
@@ -71,7 +71,7 @@ Pour vous assurer que votre build ne se termine jamais sans les variables d'envi
📄 `.env`: Entrez votre variable d'environnement comme vous le feriez normalement dans un fichier `.env`, c'est-à-dire `CLEF=VALEUR`
-📄 `env.mjs`: Ajoutez la logique de validation appropriée pour les variables d'environnement en définissant un schéma Zod à l'intérieur de `createEnv` pour chacune d'entre elles, par exemple `CLEF: z.string()`. En plus de cela, assurez-vous de la déstructuration dans l'option `runtimeEnv`, par exemple : `CLEF: process.env.CLEF`
+📄 `env.js`: Ajoutez la logique de validation appropriée pour les variables d'environnement en définissant un schéma Zod à l'intérieur de `createEnv` pour chacune d'entre elles, par exemple `CLEF: z.string()`. En plus de cela, assurez-vous de la déstructuration dans l'option `runtimeEnv`, par exemple : `CLEF: process.env.CLEF`
Pourquoi ai-je besoin de déstructurer la variable d'environnement dans
@@ -95,7 +95,7 @@ _Je veux ajouter le jeton de l’API Twitter en tant que variable d’environnem
TWITTER_API_TOKEN=1234567890
```
-2. Ajouter la variable d'environnement dans `env.mjs`:
+2. Ajouter la variable d'environnement dans `env.js`:
```ts
import { createEnv } from "@t3-oss/env-nextjs";
diff --git a/www/src/pages/ja/deployment/docker.md b/www/src/pages/ja/deployment/docker.md
index 205deec0c1..290298a090 100644
--- a/www/src/pages/ja/deployment/docker.md
+++ b/www/src/pages/ja/deployment/docker.md
@@ -16,7 +16,7 @@ Next.js では、ビルド時の変数(フロントエンドで利用可能、
### 1. Next の設定
-[`next.config.mjs`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.mjs) に、[出力ファイルのトレースを自動的に活用してイメージサイズを小さくする](https://nextjs.org/docs/advanced-features/output-file-tracing)ための`standalone`出力オプション設定を追加してください:
+[`next.config.js`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.js) に、[出力ファイルのトレースを自動的に活用してイメージサイズを小さくする](https://nextjs.org/docs/advanced-features/output-file-tracing)ための`standalone`出力オプション設定を追加してください:
```diff
export default defineNextConfig({
@@ -111,7 +111,7 @@ ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
-COPY --from=builder /app/next.config.mjs ./
+COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
diff --git a/www/src/pages/ja/usage/env-variables.mdx b/www/src/pages/ja/usage/env-variables.mdx
index c7608511cc..6cfcdbe839 100644
--- a/www/src/pages/ja/usage/env-variables.mdx
+++ b/www/src/pages/ja/usage/env-variables.mdx
@@ -8,15 +8,15 @@ isMdx: true
import Callout from "../../../components/docs/callout.tsx";
-Create T3 App は [Zod](https://github.com/colinhacks/zod) を使用して、`src/env.mjs`にいくつかの追加ロジックを提供することにより、実行時*および*構築時に環境変数の検証を行います。
+Create T3 App は [Zod](https://github.com/colinhacks/zod) を使用して、`src/env.js`にいくつかの追加ロジックを提供することにより、実行時*および*構築時に環境変数の検証を行います。
-## env.mjs
+## env.js
-_要約; 環境変数を追加する場合は、`.env`に追加するとともに、`src/env.mjs`にバリデーターを定義する必要があります。_
+_要約; 環境変数を追加する場合は、`.env`に追加するとともに、`src/env.js`にバリデーターを定義する必要があります。_
このファイルは、スキーマと、オブジェクトの検証ロジックおよび再構築の、2 つの部分に分かれています。検証ロジックは触る必要がありません。
-```ts:env.mjs
+```ts:env.js
const server = z.object({
NODE_ENV: z.enum(["development", "test", "production"]),
});
@@ -73,7 +73,7 @@ _興味のある読者のために:_
環境(サーバーまたはクライアント)に応じて、両方のスキーマが検証されるのか、クライアントのスキーマだけが検証されるのかが決まります。つまり、サーバーの環境変数が未定義であっても、バリデーションが失敗することはありません。つまり、環境変数のエントリーポイントを 1 つにすることができます。
```ts
-// src/env.mjs
+// src/env.js
const isServer = typeof window === "undefined";
@@ -94,7 +94,7 @@ if (parsed.success === false) {
そして、プロキシオブジェクトを使って、クライアントでサーバーサイドの環境変数にアクセスしようとすると、エラーを投げるようにしています。
```ts
-// src/env.mjs
+// src/env.js
// proxy allows us to remap the getters
export const env = new Proxy(parsed.data, {
@@ -114,17 +114,17 @@ export const env = new Proxy(parsed.data, {
## 環境変数の使用
-環境変数を使いたいときは、`env.mjs`からインポートして、通常と同じように使うことができます。これをクライアントでインポートして、サーバー側の環境変数にアクセスしようとすると、ランタイムエラーが発生します。
+環境変数を使いたいときは、`env.js`からインポートして、通常と同じように使うことができます。これをクライアントでインポートして、サーバー側の環境変数にアクセスしようとすると、ランタイムエラーが発生します。
```ts:pages/api/hello.ts
-import { env } from "../../env.mjs";
+import { env } from "../../env.js";
// `env` is fully typesafe and provides autocompletion
const dbUrl = env.DATABASE_URL;
```
```ts:pages/index.tsx
-import { env } from "../env.mjs";
+import { env } from "../env.js";
// ❌ This will throw a runtime error
const dbUrl = env.DATABASE_URL;
@@ -145,7 +145,7 @@ Next.js などのいくつかのフレームワークやビルドツールでは
📄 `.env`: 通常の`.env`ファイルに入力するように、環境変数を入力します(例:`KEY=VALUE`)。
-📄 `env.mjs`:Zod スキーマを定義することで、環境変数に適切な検証ロジックを追加します。(例:`KEY: z.string()` )。そして、環境変数を `process.env` から `processEnv` オブジェクトに再構築します(例:`KEY: process.env.KEY` )。
+📄 `env.js`:Zod スキーマを定義することで、環境変数に適切な検証ロジックを追加します。(例:`KEY: z.string()` )。そして、環境変数を `process.env` から `processEnv` オブジェクトに再構築します(例:`KEY: process.env.KEY` )。
オプションで、`.env.example`を最新化しておいても良いでしょう:
@@ -161,7 +161,7 @@ _サーバーサイドの環境変数として、Twitter API Token を追加し
TWITTER_API_TOKEN=1234567890
```
-2. 環境変数を `env.mjs` に追加する:
+2. 環境変数を `env.js` に追加する:
```ts
export const server = z.object({
diff --git a/www/src/pages/no/deployment/docker.md b/www/src/pages/no/deployment/docker.md
index a2b732f230..d8462e6997 100644
--- a/www/src/pages/no/deployment/docker.md
+++ b/www/src/pages/no/deployment/docker.md
@@ -16,7 +16,7 @@ Vær klar over at Next.js krever forskjellig håndtering av variabler som er sat
### 1. Next.js-konfigurasjon
-I [`next.config.mjs`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.mjs), legg til _output_-alternativet `standalone` for å redusere størrelsen på Docker-_imaget_ ved å benytte ["Output File Tracing"](https://nextjs.org/docs/advanced-features/output-file-tracing):
+I [`next.config.js`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.js), legg til _output_-alternativet `standalone` for å redusere størrelsen på Docker-_imaget_ ved å benytte ["Output File Tracing"](https://nextjs.org/docs/advanced-features/output-file-tracing):
```diff
export default defineNextConfig({
@@ -111,7 +111,7 @@ ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
-COPY --from=builder /app/next.config.mjs ./
+COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
diff --git a/www/src/pages/no/usage/env-variables.md b/www/src/pages/no/usage/env-variables.md
index 823049f7bf..8b52c4e13d 100644
--- a/www/src/pages/no/usage/env-variables.md
+++ b/www/src/pages/no/usage/env-variables.md
@@ -79,7 +79,7 @@ Her foregår valideringen og de validerte objektene eksporteres. Du bør ikke re
Hvis du vil bruke miljøvariablene dine, kan du importere dem fra `env/client.mjs` eller `env/server.mjs` avhengig av hvor du vil bruke dem:
```ts:pages/api/hello.ts
-import { env } from "../../env.mjs";
+import { env } from "../../env.js";
// `env` er helt typesikker og tillater autofullføring
const dbUrl = env.DATABASE_URL;
diff --git a/www/src/pages/pl/deployment/docker.md b/www/src/pages/pl/deployment/docker.md
index aecf35e0fa..7b61b67a12 100644
--- a/www/src/pages/pl/deployment/docker.md
+++ b/www/src/pages/pl/deployment/docker.md
@@ -16,7 +16,7 @@ Należy pamiętać, że Next.js wymaga innego procesu na czas budowania (dostęp
### 1. Konfiguracja Next.js
-W swoim pliku [`next.config.mjs`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.mjs), dodaj opcję konfiguracji outputu `standalone` aby [zredukować rozmiar zdjęć poprzez automatyczne wykorzystanie danych wyjściowych](https://nextjs.org/docs/advanced-features/output-file-tracing):
+W swoim pliku [`next.config.js`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.js), dodaj opcję konfiguracji outputu `standalone` aby [zredukować rozmiar zdjęć poprzez automatyczne wykorzystanie danych wyjściowych](https://nextjs.org/docs/advanced-features/output-file-tracing):
```diff
export default defineNextConfig({
@@ -111,7 +111,7 @@ ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
-COPY --from=builder /app/next.config.mjs ./
+COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
diff --git a/www/src/pages/pl/usage/env-variables.md b/www/src/pages/pl/usage/env-variables.md
index 00afb18a53..13f3e25240 100644
--- a/www/src/pages/pl/usage/env-variables.md
+++ b/www/src/pages/pl/usage/env-variables.md
@@ -5,15 +5,15 @@ layout: ../../../layouts/docs.astro
lang: pl
---
-Create T3 App korzysta z paczki [Zod](https://github.com/colinhacks/zod) w celu walidacji twoich zmiennych środowiskowych podczas runtime'u _oraz_ budowania aplikacji. Dołączane są z tego powodu dodatkowe narzędzia w pliku `src/env.mjs`.
+Create T3 App korzysta z paczki [Zod](https://github.com/colinhacks/zod) w celu walidacji twoich zmiennych środowiskowych podczas runtime'u _oraz_ budowania aplikacji. Dołączane są z tego powodu dodatkowe narzędzia w pliku `src/env.js`.
-## env.mjs
+## env.js
-_TLDR; Jeżeli chcesz dodać nową zmienną środowiskową, musisz dodać ją zarówno do pliku `.env`, jak i zdefiniować jej walidator w pliku `src/env.mjs`._
+_TLDR; Jeżeli chcesz dodać nową zmienną środowiskową, musisz dodać ją zarówno do pliku `.env`, jak i zdefiniować jej walidator w pliku `src/env.js`._
Plik ten podzielony jest na dwie części - schemat zmiennych i wykorzystywanie obiektu `process.env`, jak i logika walidacji. Logika ta nie powinna być zmieniana.
-```ts:env.mjs
+```ts:env.js
const server = z.object({
NODE_ENV: z.enum(["development", "test", "production"]),
});
@@ -66,7 +66,7 @@ _Dla zainteresowanego czytelnika:_
W zależności od środowiska (serwer lub klient) walidujemy albo oba schematy, albo tylko schemat klienta. Oznacza to, iż nawet jeśli zmienne środowiskowe serwera nie będą zdefiniowane, nie zostanie wyrzucony błąd walidacji - możemy więc mieć jeden punkt odniesienia do naszych zmiennych.
-```ts:env.mjs
+```ts:env.js
const isServer = typeof window === "undefined";
const merged = server.merge(client);
@@ -85,7 +85,7 @@ if (parsed.success === false) {
Następnie korzystamy z obiektu proxy, aby wyrzucać błędy, jeśli chcesz skorzystać z serwerowych zmiennych środowiskowych na kliencie.
-```ts:env.mjs
+```ts:env.js
// proxy pozwala na zmianę gettera
export const env = new Proxy(parsed.data, {
get(target, prop) {
@@ -104,17 +104,17 @@ export const env = new Proxy(parsed.data, {
## Korzystanie Ze Zmiennych Środowiskowych
-Jeżeli chcesz skorzystać ze swoich zmiennych środowiskowych, możesz zaimportować je z pliku `env.mjs` i skorzystać z nich tak, jak normalnie byłoby to możliwe. Jeżeli zaimportujesz obiekt ten na kliencie i spróbujesz skorzystać ze zmiennych serwera, wystąpi błąd runtime.
+Jeżeli chcesz skorzystać ze swoich zmiennych środowiskowych, możesz zaimportować je z pliku `env.js` i skorzystać z nich tak, jak normalnie byłoby to możliwe. Jeżeli zaimportujesz obiekt ten na kliencie i spróbujesz skorzystać ze zmiennych serwera, wystąpi błąd runtime.
```ts:pages/api/hello.ts
-import { env } from "../../env.mjs";
+import { env } from "../../env.js";
// `env` jest w pełni typesafe i zapewnia autouzupełnianie
const dbUrl = env.DATABASE_URL;
```
```ts:pages/index.tsx
-import { env } from "../env.mjs";
+import { env } from "../env.js";
// ❌ Wyrzuci to błąd runtime
const dbUrl = env.DATABASE_URL;
@@ -135,7 +135,7 @@ Aby upewnić się, że twój projekt nie zbuduje się bez wymaganych zmiennych
📄 `.env`: Wprowadź swoją zmienną środ. tak, jak to zwykle robisz (np. `KLUCZ=WARTOŚĆ`)
-📄 `env.mjs`: Dodaj odpowiadającą jej logikę walidacji definiując schemat Zod, np. `KLUCZ: z.string()`. Następnie wykorzystaj obiekt `process.env` w `processEnv`, np. `KEY: process.env.KEY`.
+📄 `env.js`: Dodaj odpowiadającą jej logikę walidacji definiując schemat Zod, np. `KLUCZ: z.string()`. Następnie wykorzystaj obiekt `process.env` w `processEnv`, np. `KEY: process.env.KEY`.
Opcjonalnie możesz zaktualizować plik `.env.example`:
@@ -151,7 +151,7 @@ _Chcę dodać mój token do API Twittera jako zmienną środowiskową po stronie
TWITTER_API_TOKEN=1234567890
```
-2. Dodaj zmienną środowiskową do pliku `env.mjs`:
+2. Dodaj zmienną środowiskową do pliku `env.js`:
```ts
export const server = z.object({
diff --git a/www/src/pages/pt/deployment/docker.md b/www/src/pages/pt/deployment/docker.md
index fdcd32ab45..7331d00c1c 100644
--- a/www/src/pages/pt/deployment/docker.md
+++ b/www/src/pages/pt/deployment/docker.md
@@ -16,7 +16,7 @@ Por favor, note que o Next.js requer um processo diferente para variáveis de am
### 1. Configuração do Next
-Em seu arquivo [`next.config.mjs`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.mjs), configure a opção `output` como `standalone` para [reduzir o tamanho de imagens](https://nextjs.org/docs/advanced-features/output-file-tracing):
+Em seu arquivo [`next.config.js`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.js), configure a opção `output` como `standalone` para [reduzir o tamanho de imagens](https://nextjs.org/docs/advanced-features/output-file-tracing):
```diff
export default defineNextConfig({
@@ -111,7 +111,7 @@ ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
-COPY --from=builder /app/next.config.mjs ./
+COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
diff --git a/www/src/pages/pt/usage/env-variables.mdx b/www/src/pages/pt/usage/env-variables.mdx
index a9a8f5ed7a..e4f44b4e38 100644
--- a/www/src/pages/pt/usage/env-variables.mdx
+++ b/www/src/pages/pt/usage/env-variables.mdx
@@ -8,15 +8,15 @@ isMdx: true
import Callout from "../../../components/docs/callout.tsx";
-O Create T3 App usa sua mais nova biblioteca [@t3-oss/env-nextjs](https://env.t3.gg) e [zod](https://zod.dev) para validar variáveis de ambiente durante o tempo de execução (runtime) _e_ buildtime fornecendo uma lógica simples no arquivo `src/env.mjs`:
+O Create T3 App usa sua mais nova biblioteca [@t3-oss/env-nextjs](https://env.t3.gg) e [zod](https://zod.dev) para validar variáveis de ambiente durante o tempo de execução (runtime) _e_ buildtime fornecendo uma lógica simples no arquivo `src/env.js`:
-## env.mjs
+## env.js
-_Muito longo, não li; Se você quiser adicionar uma nova variável de ambiente, você deve adicioná-la ao seu `.env` ao definir no validador em `src/env.mjs`._
+_Muito longo, não li; Se você quiser adicionar uma nova variável de ambiente, você deve adicioná-la ao seu `.env` ao definir no validador em `src/env.js`._
Este arquivo é dividido em duas partes - o esquema e a desestruturação do objeto, bem como a lógica de validação. A lógica de validação não deve ser tocada.
-```ts:env.mjs
+```ts:env.js
import { createEnv } from "@t3-oss/env-nextjs";
import { z } from "zod";
@@ -42,17 +42,17 @@ T3 Env traz um novo conceito através do `createEnv`, o qual é responsável por
## Usando Variáveis de Ambiente
-Quando você quiser usar suas variáveis de ambiente, você pode importá-las de `env.mjs` e usá-las como faria normalmente. Se você importar isso no cliente e tentar acessar uma variável de ambiente do lado do servidor, receberá um erro em tempo de execução (runtime).
+Quando você quiser usar suas variáveis de ambiente, você pode importá-las de `env.js` e usá-las como faria normalmente. Se você importar isso no cliente e tentar acessar uma variável de ambiente do lado do servidor, receberá um erro em tempo de execução (runtime).
```ts:pages/api/hello.ts
-import { env } from "../../env.mjs";
+import { env } from "../../env.js";
// `env` é totalmente tipado e fornece preenchimento automático
const dbUrl = env.DATABASE_URL;
```
```ts:pages/index.tsx
-import { env } from "../env.mjs";
+import { env } from "../env.js";
// ❌ Isso lançará um erro em tempo de execução
const dbUrl = env.DATABASE_URL;
@@ -73,7 +73,7 @@ Para garantir que sua compilação nunca seja concluída sem as variáveis de am
📄 `.env`: Insira sua variável de ambiente como faria normalmente em um arquivo `.env`, ou seja, `CHAVE=VALOR`. Além disso, certifique-se de desestruturar elas na opção `runtimeEnv`, por exemplo, `CHAVE: process.env.CHAVE`.
-📄 `env.mjs`: Adicione a lógica de validação apropriada para as variáveis de ambiente definindo um esquema Zod, por exemplo `NOME_DA_VARIAVEL: z.string()`
+📄 `env.js`: Adicione a lógica de validação apropriada para as variáveis de ambiente definindo um esquema Zod, por exemplo `NOME_DA_VARIAVEL: z.string()`
Opcionalmente, você também pode manter `.env.example` atualizado:
@@ -89,7 +89,7 @@ _Quero adicionar meu token da API do Twitter como uma variável de ambiente do l
TWITTER_API_TOKEN=1234567890
```
-2. Adicione a variável de ambiente a `env.mjs`:
+2. Adicione a variável de ambiente a `env.js`:
```ts
import { createEnv } from "@t3-oss/env-nextjs";
diff --git a/www/src/pages/ru/deployment/docker.md b/www/src/pages/ru/deployment/docker.md
index 4272731389..8b4955336d 100644
--- a/www/src/pages/ru/deployment/docker.md
+++ b/www/src/pages/ru/deployment/docker.md
@@ -16,7 +16,7 @@ lang: ru
### 1. Конфигурация Next
-В вашем [`next.config.mjs`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.mjs), добавьте конфигурацию `output` со значением `standalone` для [уменьшения размера образа с помощью автоматического использования трассировок вывода](https://nextjs.org/docs/advanced-features/output-file-tracing):
+В вашем [`next.config.js`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.js), добавьте конфигурацию `output` со значением `standalone` для [уменьшения размера образа с помощью автоматического использования трассировок вывода](https://nextjs.org/docs/advanced-features/output-file-tracing):
```diff
export default defineNextConfig({
@@ -111,7 +111,7 @@ ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
-COPY --from=builder /app/next.config.mjs ./
+COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
diff --git a/www/src/pages/ru/usage/env-variables.mdx b/www/src/pages/ru/usage/env-variables.mdx
index 7e392ceeef..c54870539b 100644
--- a/www/src/pages/ru/usage/env-variables.mdx
+++ b/www/src/pages/ru/usage/env-variables.mdx
@@ -8,13 +8,13 @@ isMdx: true
import Callout from "../../../components/docs/callout.tsx";
-Create T3 App использует собственный пакет [@t3-oss/env-nextjs](https://env.t3.gg) вместе с [Zod](https://github.com/colinhacks/zod) для валидации переменных среды во время выполнения _и_ во время сборки, предоставляя простую логику в файле `src/env.mjs`:
+Create T3 App использует собственный пакет [@t3-oss/env-nextjs](https://env.t3.gg) вместе с [Zod](https://github.com/colinhacks/zod) для валидации переменных среды во время выполнения _и_ во время сборки, предоставляя простую логику в файле `src/env.js`:
-## env.mjs
+## env.js
-_TLDR; Если вы хотите добавить новую переменную среды, вам следует добавить валидатор в `src/env.mjs`, а затем пару ключ-значение в `.env`._
+_TLDR; Если вы хотите добавить новую переменную среды, вам следует добавить валидатор в `src/env.js`, а затем пару ключ-значение в `.env`._
-```ts:env.mjs
+```ts:env.js
import { createEnv } from "@t3-oss/env-nextjs";
import { z } from "zod";
@@ -41,17 +41,17 @@ T3 Env использует `createEnv`, который отвечает за с
## Использование переменных среды
-Когда вы хотите использовать переменные среды, вы можете импортировать их из `env.mjs` и использовать их как вы обычно использовали бы. Если вы импортируете этот файл на стороне клиента и попробуете получить серверную переменную, вы получите ошибку выполнения:
+Когда вы хотите использовать переменные среды, вы можете импортировать их из `env.js` и использовать их как вы обычно использовали бы. Если вы импортируете этот файл на стороне клиента и попробуете получить серверную переменную, вы получите ошибку выполнения:
```ts:pages/api/hello.ts
-import { env } from "../../env.mjs";
+import { env } from "../../env.js";
// `env` полностью типобезопасно и предоставляет автокомплит
const dbUrl = env.DATABASE_URL;
```
```ts:pages/index.tsx
-import { env } from "../env.mjs";
+import { env } from "../env.js";
// ❌ Это даст ошибку
const dbUrl = env.DATABASE_URL;
@@ -72,7 +72,7 @@ const wsKey = env.NEXT_PUBLIC_WS_KEY;
📄 `.env`: Введите переменную среды, как обычно делаете в файле `.env`, т.е. `KEY=VALUE`
-📄 `env.mjs`: Добавьте соответствующую логику валидации для переменных среды, определив для каждой из них Zod схему внутри `createEnv`, например `KEY: z.string()`. Кроме этого, убедитесь в том, что вы деструкткрировали их в опции `runtimeEnv`, например `KEY: process.env.KEY`.
+📄 `env.js`: Добавьте соответствующую логику валидации для переменных среды, определив для каждой из них Zod схему внутри `createEnv`, например `KEY: z.string()`. Кроме этого, убедитесь в том, что вы деструкткрировали их в опции `runtimeEnv`, например `KEY: process.env.KEY`.
Зачем нужно деструктурировать переменные среды внутри `runtimeEnv`? Это
@@ -95,7 +95,7 @@ _Я хочу добавить мой Twitter API токен в качестве
TWITTER_API_TOKEN=1234567890
```
-2. Добавьте переменную среды в `env.mjs`:
+2. Добавьте переменную среды в `env.js`:
```ts
import { createEnv } from "@t3-oss/env-nextjs";
diff --git a/www/src/pages/zh-hans/deployment/docker.md b/www/src/pages/zh-hans/deployment/docker.md
index f324124fe5..d4555241e3 100644
--- a/www/src/pages/zh-hans/deployment/docker.md
+++ b/www/src/pages/zh-hans/deployment/docker.md
@@ -16,7 +16,7 @@ lang: zh-hans
### 1. Next 的配置
-在你的 [`next.config.mjs`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.mjs) 文件里,添加构建输出选项 `standalone`,以[自动借助追踪输出文件来降低镜像文件的大小](https://nextjs.org/docs/advanced-features/output-file-tracing):
+在你的 [`next.config.js`](https://github.com/t3-oss/create-t3-app/blob/main/cli/template/base/next.config.js) 文件里,添加构建输出选项 `standalone`,以[自动借助追踪输出文件来降低镜像文件的大小](https://nextjs.org/docs/advanced-features/output-file-tracing):
```diff
export default defineNextConfig({
@@ -111,7 +111,7 @@ ENV NODE_ENV production
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
-COPY --from=builder /app/next.config.mjs ./
+COPY --from=builder /app/next.config.js ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/package.json ./package.json
diff --git a/www/src/pages/zh-hans/usage/env-variables.mdx b/www/src/pages/zh-hans/usage/env-variables.mdx
index 78666358d1..a86536d477 100644
--- a/www/src/pages/zh-hans/usage/env-variables.mdx
+++ b/www/src/pages/zh-hans/usage/env-variables.mdx
@@ -8,13 +8,13 @@ isMdx: true
import Callout from "../../../components/docs/callout.tsx";
-Create T3 App 使用自己的包 [@t3-oss/env-nextjs](https://env.t3.gg) 和 [zod](https://zod.dev) ,通过在 `src/env.mjs` 中提供一个简单的逻辑,在运行时和构建时验证环境变量。
+Create T3 App 使用自己的包 [@t3-oss/env-nextjs](https://env.t3.gg) 和 [zod](https://zod.dev) ,通过在 `src/env.js` 中提供一个简单的逻辑,在运行时和构建时验证环境变量。
-## env.mjs
+## env.js
-_简而言之,如果你想要添加一个新的环境变量,你需要在 src/env.mjs 中添加一个验证器,然后在 .env 文件中添加键值对。_
+_简而言之,如果你想要添加一个新的环境变量,你需要在 src/env.js 中添加一个验证器,然后在 .env 文件中添加键值对。_
-```ts:env.mjs
+```ts:env.js
import { createEnv } from "@t3-oss/env-nextjs";
import { z } from "zod";
@@ -40,17 +40,17 @@ T3 Env 使用 `createEnv` 函数来创建 schema,以验证客户端和服务
## 使用环境变量
-当你想使用你的环境变量时,你可以从创建的 `env.mjs` 中导入,并像平常一样使用它们。如果你在客户端导入并尝试访问服务端环境变量,你将得到一个运行时错误。
+当你想使用你的环境变量时,你可以从创建的 `env.js` 中导入,并像平常一样使用它们。如果你在客户端导入并尝试访问服务端环境变量,你将得到一个运行时错误。
```ts:pages/api/hello.ts
-import { env } from "../../env.mjs";
+import { env } from "../../env.js";
// `env` 是完全类型安全的,并提供自动完成功能
const dbUrl = env.DATABASE_URL;
```
```ts:pages/index.tsx
-import { env } from "../env.mjs";
+import { env } from "../env.js";
// ❌ 这将抛出一个运行时错误
const dbUrl = env.DATABASE_URL;
@@ -71,7 +71,7 @@ const wsKey = env.NEXT_PUBLIC_WS_KEY;
📄 `.env`:像在 `.env` 文件中一样输入您的环境变量,例如:`KEY=VALUE`
-📄 `env.mjs`:为每个环境变量添加适当的验证逻辑,在 `createEnv` 中定义一个Zod模式,例如:`KEY: z.string()`。此外,确保在 `runtimeEnv` 选项中对它们进行解构,例如:KEY: `process.env.KEY`
+📄 `env.js`:为每个环境变量添加适当的验证逻辑,在 `createEnv` 中定义一个Zod模式,例如:`KEY: z.string()`。此外,确保在 `runtimeEnv` 选项中对它们进行解构,例如:KEY: `process.env.KEY`
为什么需要在 `runtimeEnv` 中对环境变量进行解构? 这是由于 Next.js
@@ -91,7 +91,7 @@ const wsKey = env.NEXT_PUBLIC_WS_KEY;
TWITTER_API_TOKEN=1234567890
```
-2. 在 `env.mjs` 中添加环境变量:
+2. 在 `env.js` 中添加环境变量:
```ts
import { createEnv } from "@t3-oss/env-nextjs";
@@ -126,7 +126,7 @@ SOME_NUMBER=123
SOME_BOOLEAN=true
```
-然后,在 `env.mjs` 中验证它们:
+然后,在 `env.js` 中验证它们:
```ts
import { createEnv } from "@t3-oss/env-nextjs";