我的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所使用的默认值?谢谢
答案 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
和其他配置,例如,对于开发,您可以具有本地主机,然后对于暂存或生产,您可以具有baseUrl
在defaults.prod.json \\production
构建>扩展中配置您的不同环境
这将替换nuxt.config.ts
,具体取决于我们将在defaults.json
中运行脚本的环境。
在package.json
中,将脚本配置为将在哪种环境下运行(例如package.json
将使用npm run start
,而NODE_ENV=development
将与defaults.json
和{{ 1}}将baseUrl: http://localhost:3000
与npm run build
和其他配置一起使用
有关更多详细信息,您可以查看cross-env