nuxt 项目部署后,nuxt start 后, env.NODE_ENV 强制就是production且无法修改,package.json scripts 命令 添加的其他变量都被强制清空?是否有什么方式可以在nuxt start命令下增加额外变量控制我的api地址,或者其他方式(源码和部署代码是两个服务器,也就是说排除在源码下面 直接 nuxt, 而是用打包的后 .nuxt + 相关配置文件 进行启动)
nuxt 项目部署后,nuxt start 后, env.NODE_ENV 强制就是production且无法修改,package.json scripts 命令 添加的其他变量都被强制清空?是否有什么方式可以在nuxt start命令下增加额外变量控制我的api地址,或者其他方式(源码和部署代码是两个服务器,也就是说排除在源码下面 直接 nuxt, 而是用打包的后 .nuxt + 相关配置文件 进行启动)
经过多次查阅深究官方文档和测试,终于发现了问题所在,之前代码作者留下的漏洞,终于解决了,终归还是官方文档的意思,
请注意,Nuxt 使用 webpack 的 definePlugin 来定义环境变量。这意味着 Node.js 中的process或process.env既不可用也不能定义。nuxt.config.js 中定义的每个 env 属性都单独映射到process.env.xxxx并在编译期间进行转换编译。
意思是,console.log(process.env)将输出{},但console.log(process.env.you_var)仍将输出您的值。它将process.env.your_var的所有实例替换为您将其设置为的值。即:env.test ='testing123'。如果你在代码中的某个地方使用process.env.test,它实际上被翻译成'testing123'。
https://www.nuxtjs.cn/api/con...
只看文档可能很多人不理解,所以就多试试,可参考我附图说明,简单来说就是把第一次node 阶段的 process.env.mode 存储在了 nuxt.config env内,当nuxt启动应用层之后就能使用环境变量
试试这个?