vite中环境变量替换,百度上大家只会复制这段文字,有没有人试过这个是否真的可行呢

img


vite中环境变量替换,百度上大家只会复制这段文字,有没有人试过这个是否真的可行呢,我这样写根本替换不了啊

【以下回答由 GPT 生成】

答案

对于Vite项目中的环境变量替换,在HTML文件中的实现方式是有所不同的。以下是解决方案的具体步骤:

  1. 首先,在根目录下创建一个 .env 文件,用于存储环境变量。可以在该文件中定义你需要的任意数量的环境变量,每个环境变量的格式是 VITE_变量名=值,例如 VITE_API_URL=http://api.example.com

  2. 在你需要使用环境变量的地方,比如 HTML 文件中,使用以下语法进行替换 %变量名%,例如 %VITE_API_URL%

  3. 在你的项目中安装 @rollup/plugin-replace 插件。可以使用以下命令进行安装:

    shell npm install -D @rollup/plugin-replace

  4. 在你的 vite.config.js 文件中,引入并配置 @rollup/plugin-replace 插件,如下所示:

    ```javascript import { defineConfig } from 'vite'; import replace from '@rollup/plugin-replace';

    export default defineConfig({ build: { rollupOptions: { plugins: [ replace({ preventAssignment: true, values: { '%VITE_API_URL%': JSON.stringify(process.env.VITE_API_URL), }, }), ], }, }, }); ```

  5. 确保在使用 replace 插件时将环境变量的值进行 JSON 序列化,并将 preventAssignment 参数设置为 true。这是因为在 Vite 的环境变量中,所有的值都是字符串类型,而 replace 插件期望的是一个 JavaScript 表达式。

  6. 运行你的 Vite 项目,你将看到 HTML 文件中的环境变量已经被正确地替换了。

请注意,如果你尝试替换一个在 import.meta.env 中不存在的环境变量,比如 %NON_EXISTENT%,它将被替换为空字符串。这与在 JavaScript 中使用 import.meta.env.NON_EXISTENT 不同,后者将被替换为 undefined

希望这些步骤能够帮助你正确实现在 Vite 中 HTML 文件中的环境变量替换。如果你有任何进一步的问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^