env属性

  • 类型:对象

js允许您在客户端创建环境变量,也可以从服务器端共享。

env属性定义了应该在客户端可用的环境变量。可以使用服务器端环境变量dotenv模块或类似的。

一定要读process.envprocess.env=={}下面是更好的故障排除。

nuxt.config.js
出口默认的envbaseUrl过程envBASE_URL||“http://localhost: 3000”

这使您可以创建一个baseUrl属性,它将等于BASE_URL服务器端环境变量(如果可用或已定义)。如果不是这样,baseUrl在客户端将等于“http://localhost: 3000”.属性将服务器端变量BASE_URL复制到客户端env财产的nuxt.config.js.或者,定义另一个值(http://localhost:3000).

然后,我可以访问我的baseUrl变量有2种方式:

  1. 通过process.env.baseUrl
  2. 通过context.env.baseUrl,请参阅上下文API

你可以使用env属性用于给出公共令牌,例如。

对于上面的例子,我们可以使用它来配置axios

插件/ axios.js
进口axios“axios”出口默认的axios创建baseURL过程envbaseUrl

然后,在你的页面中,你可以像这样导入axios:从'~/plugins/axios'中导入axios

自动注入环境变量

如果你定义环境变量开始NUXT_ENV_在构建阶段(例如。NUXT_ENV_COOL_WORD =冻结nuxt构建设置NUXT_ENV_COOL_WORD=冻结& next build对于Windows控制台,它们将自动注入到进程环境中。请注意,它们可能优先于已定义的变量nuxt.config.js名字一样。

process.env=={}

注意,Nuxt使用webpack的definePlugin来定义环境变量。这意味着实际过程process.envNode.js既不可用也未定义。每一个env在nuxt.config.js中定义的属性被单独映射到process.env.xxxx并在编译期间转换。

的含义,console.log (process.env)将输出{}console.log (process.env.your_var)仍然会输出你的价值。当webpack编译你的代码时,它会替换process.env.your_var使用你设置的值,例如:env。测试= ' testing123 '.如果你使用process.env.test在你的代码中,它实际上被翻译成'testing123'。

之前

如果过程env测试==“testing123”

如果“testing123”==“testing123”

serverMiddleware

作为serverMiddleware与主Nuxt构建解耦,env中定义的变量nuxt.config.js在那里没有。