iv8d
V2EX  ›  Vue.js

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

  •  
  •   iv8d · May 28, 2025 · 2214 views
    This topic created in 374 days ago, the information mentioned may be changed or developed.
    项目用的 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 下放敏感信息,奈何目前用到了,请各位大佬赐教
    lyc575757
        1
    lyc575757  
       May 28, 2025
    试试 env 用 encodeURIComponent 编码一下 abcd%241234%5E33
    代码里面使用的时候再 decodeURIComponent 解码
    crocoBaby
        2
    crocoBaby  
       May 28, 2025
    试试在服务端放在 json 里面(根据环境请求对应配置)
    iv8d
        3
    iv8d  
    OP
       May 28, 2025
    @lyc575757 这种可以,但是但是。。折腾一次麻烦,实在不行只能先编码一次。
    iv8d
        4
    iv8d  
    OP
       May 28, 2025
    @crocoBaby 嗯 明白,那这是 cli 工具问题吗,有遇到过吗
    iv8d
        5
    iv8d  
    OP
       May 28, 2025
    以为是 dotenv 插件的 bug ,试着升级新版 16 也没解决。
    shintendo
        6
    shintendo  
       May 28, 2025
    prod 和 dev 确定读的是一样的环境变量吗
    iv8d
        7
    iv8d  
    OP
       May 28, 2025
    @shintendo 复制过去的,错不了
    NgZaamPaang
        8
    NgZaamPaang  
       May 28, 2025
    因为 vue-cli 中会用 dotenv-expand 扩展 dotenv 的结果,所以$1234 被识别成变量被 dotenv-expand 处理了
    iv8d
        9
    iv8d  
    OP
       May 28, 2025
    @NgZaamPaang 嗯 那怎么处理这种值让以字面量显示或被处理呢。
    iv8d
        10
    iv8d  
    OP
       Jun 9, 2025
    最后还是无法处理,将改值放到其他地方了,env 拜拜
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1653 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:22 · PVG 00:22 · LAX 09:22 · JFK 12:22
    ♥ Do have faith in what you're doing.