[vitejs/vite]设置环境变量后,这个环境变量并没有存在于import.meta.env列表中。

2024-06-28 776 views
9
描述错误

自定义环境变量以 VITE_ 开头的import.meta.env无法取到

图像

在vite.config.ts中通过loadEnv可以获取自定义的环境变量

服务很忙,依旧不到

系统信息
System:
    OS: macOS 13.1
    CPU: (8) arm64 Apple M1 Pro
    Memory: 91.69 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.12.1 - ~/.nvm/versions/node/v18.12.1/bin/node
    Yarn: 1.22.19 - ~/.yarn/bin/yarn
    npm: 8.19.2 - ~/.nvm/versions/node/v18.12.1/bin/npm
  Browsers:
    Chrome: 110.0.5481.100
    Safari: 16.2

回答

2

NODE_ENV是环境变量的专用变量,NODE_ENV将自动转换为VITE_USER_NODE_ENV。变量从 开始VITE_应该默认起作用,复制将有助于解决问题。

9

是的,你需要VITE_前缀,这样它才会出现在 中import.meta.env.*。实际上,有趣的是,它VITE_USER_NODE_ENV显示在那里,看起来像是一个错误,因为它仅供内部使用,它不应该出现在 下import.meta.env

9

尝试一下这个项目 'git clone git@github.com:cnyxq/vite-project.git' 可以输出 'VITE_IMG_BASE_URL'

3

VITE_IMG_BASE_URL搜索结果中没有。这是有效的复制品吗?

1

抱歉,我忘记上传“.env”文件了。现在你可以试试了。我重新上传了

1

不错~兄弟,可以了

7

这样虽然可以通过import.meta.env获取到指定模式下的环境变量,但是如果我想.env下也放环境变量的话就没法获取了

3

dotenv.config({ path: .env.${mode} }) dotenv.config({ path: .env, // .env }) 在loadEnv.js里添加如上配置,dotenv.config可添加多个,可执行。

0

非常感谢~