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";