質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Q&A

解決済

2回答

2110閲覧

Nuxt3のruntimeConfigの値を.env.devや,env.stgで切り分けたい

yu-na

総合スコア27

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

0グッド

1クリップ

投稿2022/12/31 09:45

編集2022/12/31 09:49

環境

Nuxt: 3.0.0
node: v18.12.1
npm: 8.19.2

質問

Nuxt3で環境ごとに設定値を変える方法を公式がdotenvを紹介して載せています。

https://nuxt.com/docs/guide/going-further/runtime-config/

こちらを試したところ、実行時に環境変数を直接セットすればnuxt.config.tsの設定値は上書きされましたが、envファイルをsourceする方法だと値が上書きされませんでした。

▼nuxt.config

export default defineNuxtConfig({ runtimeConfig: { frontenv: 'local',

▼.env.dev

NUXT_FRONTENV=dev

つまり、デフォルトで local がセットされた frontend 環境変数を、.env.devファイルをsourceして実行したら dev に上書きされて欲しいという検証になります。

▼package.json

"scripts": { "build": "nuxt build", "start:dev": "source ./.env.dev && node .output/server/index.mjs" },

▼検証コマンド

npm run build npm run start:dev

▼これはOK => console.log(useRuntimeConfig().frontenv)で dev が表示される

package.jsonのscript

1"start:dev": "NUXT_FRONTENV=dev node .output/server/index.mjs"

▼これはNG => console.log(useRuntimeConfig().frontenv)で local が表示される

package.jsonのscript

1"start:dev": "source ./.env.dev && node .output/server/index.mjs"

こちら何か原因などわかりますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuma.inaura

2022/12/31 09:54

configに固定値を書くのではなく、はじめから 環境変数を参照するようにするのはダメなんでしょうか?
yu-na

2022/12/31 10:02

書かなくても問題ないです。 ですが、その場合も状況は変わらず、source指定だと `undefined` になります。 どうもenvファイルがsourceされていないような挙動に思えまして。
guest

回答2

0

自己解決

sourceだと反映されないので、catした変数をexportすることにしました。

"start:dev": "export `cat ./.env.dev` && node .output/server/index.mjs",

他にいい方法があれば皆さんぜひ教えてください。

投稿2022/12/31 12:04

yu-na

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

.env を直接 source で読み込んでも環境変数ではなく単に変数として解釈されてしまうんじゃないでしょうか

ENVコマンドを使うと動作が分かりやすいかと思います

"scripts": { "foo": "XXX=YYY ENV" },
"scripts": { "foo": "XXX=YYY && ENV" },
"scripts": { "foo": "export XXX=YYY && ENV" },

投稿2022/12/31 10:40

yuma.inaura

総合スコア1453

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問