vue_cli 用到 env 环境变量值特殊字符处理

117 天前
 iv8d
项目用的 vue2 老版本呢,打包是 vue cli 的,env 环境变量中定义如下
VUE_APP_DES_KEY='abcd$1234^33'
代码中使用 process.env.VUE_APP_DES_KEY 引用,少一截,变成了 abcd^33 ,应该是识别成变量了。网上找了很多方案,比如加引号,加转义符\。也问过 AI ,方案基本相同。
1. 加引号仍然会替换变量
2. \转义在 dev 环境下正常了,在 prod 打包后仍然会替换
按理不应该在 env 下放敏感信息,奈何目前用到了,请各位大佬赐教
1487 次点击
所在节点    Vue.js
10 条回复
lyc575757
117 天前
试试 env 用 encodeURIComponent 编码一下 abcd%241234%5E33
代码里面使用的时候再 decodeURIComponent 解码
crocoBaby
117 天前
试试在服务端放在 json 里面(根据环境请求对应配置)
iv8d
117 天前
@lyc575757 这种可以,但是但是。。折腾一次麻烦,实在不行只能先编码一次。
iv8d
117 天前
@crocoBaby 嗯 明白,那这是 cli 工具问题吗,有遇到过吗
iv8d
117 天前
以为是 dotenv 插件的 bug ,试着升级新版 16 也没解决。
shintendo
116 天前
prod 和 dev 确定读的是一样的环境变量吗
iv8d
116 天前
@shintendo 复制过去的,错不了
NgZaamPaang
116 天前
因为 vue-cli 中会用 dotenv-expand 扩展 dotenv 的结果,所以$1234 被识别成变量被 dotenv-expand 处理了
iv8d
116 天前
@NgZaamPaang 嗯 那怎么处理这种值让以字面量显示或被处理呢。
iv8d
104 天前
最后还是无法处理,将改值放到其他地方了,env 拜拜

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1134800

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX