[解決済み] nextjsで異なる.envファイルを使用するには?
2022-02-24 06:03:32
質問
環境変数に異なる設定ファイルを用意し、次のプロジェクトで使用できるようにしたいのですが。私は、次のような例を見ました。 ドットエンブ .
しかし、私は.envファイルに変数を定義し、config.next.jsファイルにも定義するのが好きではありません。何らかの理由で.envファイルに変数を置き、config.next.jsファイルに置き忘れると、コードは問題を起こしはじめます。 もっと効率的に行う方法はないでしょうか?
package.jsonにある私のスクリプト。
"scripts": {
"dev": "next",
"build": "next build",
"start": "next start",
"lint": "eslint pages --ext .ts,.tsx,.js",
"test": "jest",
"commit": "git-cz",
"dev:production": "dotenv next"
},
私の.envバー
TITULO=react, typescript, material ui App
コンポーネント
import { NextPage } from 'next';
import { FunctionComponent } from 'react';
interface HelloWorldProps {
nombre: string,
saludo?: string
}
const HelloWorld: FunctionComponent<HelloWorldProps> = ({ nombre, saludo = 'noches' }: HelloWorldProps) => (
<>
<h1>Hola {nombre} buenas {saludo}</h1>
{/* eslint-disable-next-line multiline-ternary */}
<h2>{process.env.TITULO ? 'hola' : 'adios'}</h2>
</>
);
const Home: NextPage = () => <HelloWorld nombre="cristian" />;
export default Home;
解決するには?
Next 9.4 では、.env ファイルをビルトインでサポートしています。 https://nextjs.org/docs/basic-features/environment-variables
しかし、万が一、複数の.envファイルを持ちたい場合は、次のようにします。
- .env.development
- .env.staging(ステージング
- .env.prestaging
- .env.production
ビルトインのenv変数のサポートでは不可能でしょう。今のところ公式にサポートされている環境は、開発環境、テスト環境、本番環境の3つだけです。とのことです。
next dev
は、"development" を使用します。
next build && next start
は本番環境です。
本番環境向けにビルドする必要があるが、例えば ".env.staging" を使用する場合、以下のように追加する必要があります。 env-cmd パッケージを作成し、package.json にこの行を追加してください。
"build:staging": "env-cmd -f .env.staging yarn build && yarn start"
次に、".env.staging" 変数を使って本番ビルドを行います。
関連
-
[解決済み】ngrokがReact devサーバーに接続しようとすると、無効なホストヘッダが表示される。
-
[解決済み] configuration.module に未知のプロパティ 'loaders' があります。
-
[解決済み] TypeError: reactjs の未定義のプロパティ 'status' を読み取ることができません。
-
[解決済み] react.jsでng-ifに相当するものは何ですか?
-
[解決済み] ReactJs "インバリアント違反..." リアクトの古典的な問題
-
[解決済み] React Router - バージョン更新後のwithRouterでTypescriptエラーが発生する。
-
[解決済み] react-router-domを使用する際に「Function components cannot be given refs」を回避する方法は?
-
[解決済み] Reactでグローバル変数を宣言する方法とは?
-
[解決済み] React」は定義される前に使用されていた
-
[解決済み] React JSXのforEach()でHTMLが出力されない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】プリセットファイルはオブジェクトのエクスポートができない
-
[解決済み] 非必須項目に対するYupバリデーション
-
[解決済み] nginxでcertbotを使用する際の問題点
-
[解決済み] eslint: no-case-declaration - case ブロックで予期しない字句の宣言があった。
-
[解決済み] は、gatsby-imageで動作する良いreactのカルーセルコンポーネントはありますか?[って聞かれます。]
-
[解決済み] Static HTML elements with event handlers require a role." を修正するにはどうすればよいですか?
-
[解決済み] アクシオスは定義されていません
-
[解決済み] Error: yarn start - エラー コマンド "start" が見つかりません。
-
[解決済み] react-router-domを使用する際に「Function components cannot be given refs」を回避する方法は?
-
[解決済み] Reactのrender()にFont Awesomeのアイコンを入れる方法