Nuxt3 如何引入環境變數

在 Vue2 或 Vue3 的專案中,我們常常會引入環境變數,例如 process.env.NODE_ENV === 'development'process.env.NODE_ENV === 'production',來區分不同工作環境下,要顯示不同的 UI。

Vue2, Vue3 中,直接使用上述判斷即可,但在 Nuxt3 中,卻永遠印出 process.env.NODE_ENV=production ,這樣的結果,非常莫名奇妙。

解決方法

nuxt.conf.ts

先將變數加入 nuxt.conf.ts 中

runtimeConfig: {
    public: {
      vueAppMode: process.env.VUE_APP_MODE,
    },
},

vue 中引入

使用專用的函式 useRuntimeConfig 帶入 Vue 之中,再判斷變數

const VUE_APP_MODE = useRuntimeConfig().public.vueAppMode;

if( VUE_APP_MODE === 'development') { xxx }

參考

https://stackoverflow.com/questions/75321567/nuxt3-how-to-set-runtime-environment-variables-after-docker-build-via-process-e

Comments

タイトルとURLをコピーしました