Nuxt

时间:2019-10-04 17:17:59

标签: javascript environment-variables nuxt.js

我的Nuxt项目使用系统环境变量来设置客户端ID,机密,URL等...

在我的nuxt.config.js中,我用以下公式设置了几个属性:

{
  something: process.env.SOMETHING || 'something_for_dev'
}

Nuxt开发人员版本运行正常,因为可以照管process.env.SOMETHING并正确使用something_for_dev

Nuxt暂存在Azure上具有其自己的配置,并且SOMETHING环境变量已正确设置,但突然仍然继续使用something_for_dev ...

我应该怎么做才能让Nuxt使用在服务器上设置的sys env var而不是dev所使用的默认值?谢谢

2 个答案:

答案 0 :(得分:0)

Env变量设置的是构建时间,而不是运行时。因此,将是在构建期间设置的env变量,好像您在开发机上一样。

因此,您可以使用适当的env变量进行构建,也可以使用允许运行时变量的nuxt-env模块,但请记住,这将不允许Webpack优化死代码,并且nuxt-env中使用的环境变量是公开的客户端因此,如果您存储机密,请使用secret config选项

答案 1 :(得分:0)

除了上面的Aldarund评论,您还可以通过以下步骤在nuxt中构建适当的env变量:

使用交叉环境:db.TABLE.update( { _id: 1 }, { $push: { category_1: contestant_id } } )

在您的项目中添加一个名为npm install cross-env的文件夹 并且在该文件夹下,您可以有不同的environment(例如,开发,登台,生产)

environment folder

您的环境配置将具有您的environment和其他配置,例如,对于开发,您可以具有本地主机,然后对于暂存或生产,您可以具有baseUrl

API_URL development config

defaults.json \\development production config

defaults.prod.json \\production构建>扩展中配置您的不同环境

nuxt.config.ts build extend envi

这将替换nuxt.config.ts,具体取决于我们将在defaults.json中运行脚本的环境。

package.json中,将脚本配置为将在哪种环境下运行(例如package.json将使用npm run start,而NODE_ENV=development将与defaults.json和{{ 1}}将baseUrl: http://localhost:3000npm run build和其他配置一起使用

package.json cross env config

有关更多详细信息,您可以查看cross-env