如果您的Nuxt版本是2.13或更高版本,您无需使用@nuxtjs/dotenv或类似的东西,因为它已经内置在框架中。
要使用一些变量,您需要在项目的根目录下有一个.env文件。这个文件应该被git忽略。然后您可以在其中输入一些键值。
PUBLIC_VARIABLE="https://my-cool-website.com"
PRIVATE_TOKEN="1234qwer"
在你的 `nuxt.config.js` 文件中,你需要将这些内容输入到两个对象中,具体取决于你的使用情况,可以是 `publicRuntimeConfig` 或者 `privateRuntimeConfig`。
export default {
publicRuntimeConfig: {
myPublicVariable: process.env.PUBLIC_VARIABLE,
},
privateRuntimeConfig: {
myPrivateToken: process.env.PRIVATE_TOKEN
}
}
区别:
publicRuntimeConfig
基本上可以在任何地方使用,而
privateRuntimeConfig
只能在 SSR(仅当密钥未传递给浏览器时才能保持私有)期间使用。
privateRuntimeConfig
的一个常见用例是在
nuxtServerInit
或构建过程中(使用
yarn build
或
yarn generate
)使用它来填充应用程序的无头 CMS 的 API 调用。
有关更多信息,请参阅此博文:
https://nuxtjs.org/blog/moving-from-nuxtjs-dotenv-to-runtime-config/
然后,您将能够直接在任何
.vue
文件中访问它。
this.$config.myPublicVariable
你还可以通过以下语法在Nuxt的
/plugins
目录中访问它。
export default ({ $axios, $config: { myPublicVariable } }) => {
$axios.defaults.baseURL = myPublicVariable
}
如果你需要在Nuxt模块中使用这个变量,或者在你的`nuxt.config.js`文件的任何键中使用它,直接写入即可。
process.env.PRIVATE_TOKEN
有时候,语法可能会有一些不同,在这种情况下,请参考您的Nuxt模块文档。
publicRuntimeConfig: {
gtm: {
id: process.env.GOOGLE_TAG_MANAGER_ID
}
},
PS:如果你使用target: server
(默认值),你可以使用yarn build
和yarn start
将你的应用部署到生产环境。然后,修改任何你想要的环境变量并再次使用yarn start
。这样就不需要重新构建了。因此,它被称为RuntimeConfig!
Nuxt3更新
如文档中所述,你可以在Nuxt3中使用以下方法
nuxt.config.js
import { defineNuxtConfig } from 'nuxt3'
export default defineNuxtConfig({
runtimeConfig: {
public: {
secret: process.env.SECRET,
}
}
}
在任何组件中
<script setup lang="ts">
const config = useRuntimeConfig()
config.secret
</script>
在一个像这样的可组合性中,如
/composables/test.js
。
export default () => {
const config = useRuntimeConfig()
console.log(config.secret)
}
这是关于那部分的
官方文档。
dotenv
模块。 - Boussadjra Brahimprocess.env.NUXT_ENV_RECAPTCHA_SITE_KEY
https://nuxtjs.org/docs/2.x/configuration-glossary/configuration-env#automatic-injection-of-environment-variables - Kunukn