くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

DotEnv+Nuxt.jsでsrcDirを設定するとうまくうごかないときは、dotenv.pathを設定する

Nuxt.jsで環境変数の設定にdotenvを使ってたときの備忘録。

起こった現象

ソースディレクトリの場所を変えようと、
nuxt.config.tsにsrcDirを設定したら、うまく動かず。。

ディレクトリはこんな感じ。

/
  app/
  .env
  nuxt.config.ts

nuxt.config.ts内では、process.envが設定されているけど、
app/のソース内では、process.envがちゃんと設定されない。。

試しに、.envをapp/配下に移動すると、逆の現象が...

/
  app/
    .env
  nuxt.config.ts

nuxt.config.ts内では、process.envが設定されず、
app/のソース内では、process.envが設定される。。

ちゃんとパスを設定する

dotenv-moduleをちゃんと設定しないといけないよう。。
公式ドキュメントのここに書いてあった。

import { Configuration } from "@nuxt/types";
require("dotenv").config();

const config: Configuration = {
  srcDir: "app",
  dotenv: { // pathを設定しないといけない
    path: process.cwd()
  }
}

node -r dotenv/configを使う

公式ドキュメントにPreloadの方法があったので、それも試してみた。

nuxt.config.tsでrequire("dotenv").config();をしなくても良くなる。

{
  "scripts": {
    "dev": "node -r dotenv/config ./node_module/.bin/nuxt-ts",
    "build": "node -r dotenv/config ./node_module/.bin/nuxt-ts build",
    "start": "node -r dotenv/config ./node_module/.bin/nuxt-ts start",
    "generate": "node -r dotenv/config ./node_module/.bin/nuxt-ts generate",
  }
}

以上!!

参考にしたサイト