首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法访问Vue3JS Vite项目中的进程变量

无法访问Vue3JS Vite项目中的进程变量
EN

Stack Overflow用户
提问于 2022-02-13 19:56:33
回答 2查看 4.7K关注 0票数 2

我正在创建一个vue3应用程序(用Vite创建),该应用程序与以Solidity编写并存储在Ropsten上的智能契约进行交互。因此,我使用web3js与我的智能契约和web3存储交互,以便在IPFS上存储一些图像。在我的项目根目录中有一个.env文件,用于存储web3存储的API密钥:

代码语言:javascript
复制
VUE_APP_API_TOKEN=VALUE
VITE_API_TOKEN=VALUE

问题是,很明显,web3存储期望API令牌存储在process.env中,而我无法从我的应用程序访问全局process变量。我总是得到一个错误的Uncaught ReferenceError: process is not defined

我认为,这与我使用Vite而不是纯Vue3有关。我试图用该代码在vite.config.ts文件中导出process,但它没有工作:

代码语言:javascript
复制
export default ({ mode }) => {
   process.env = { ...process.env, ...loadEnv(mode, process.cwd(), '') };

   console.log(process.env.VITE_API_TOKEN)         //Works fine: VALUE is logged
   console.log(process.env.VUE_APP_API_TOKEN)      //Works fine: VALUE is logged

   return defineConfig({
       plugins: [vue()]
   });
}

如何从vue文件中访问process变量以获取环境变量的值并使web3存储工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-14 11:06:25

.env

代码语言:javascript
复制
VITE_WEB3_STORAGE_TOKEN="your_token"

SomeComponent.vue: (或者你的应用程序的任何其他文件,真的):

代码语言:javascript
复制
console.log(import.meta.env.VITE_WEB3_STORAGE_TOKEN) // "your_token"

Note:正如vite文档中所指定的,只有以VITE_为前缀的变量才会被公开:

为了防止意外地向客户端泄漏env变量,只有以VITE_为前缀的变量才会暴露到您的Vite处理代码中。

票数 3
EN

Stack Overflow用户

发布于 2022-07-25 16:22:10

如果在CI中运行构建脚本,则需要确保在运行构建脚本之前创建/填充相关的.env文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71104342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档