javascript - Svelte 中的环境变量 - __myapp 未定义
问题描述
我正在尝试在我的 Svelte 应用程序上设置环境变量以隐藏 API 密钥。
我按照本文中的说明进行操作 [https://medium.com/dev-cafe/how-to-setup-env-variables-to-your-svelte-js-app-c1579430f032]。
这是我的 rollup.config.js 的结构
import { config as configDotenv } from 'dotenv';
import replace from '@rollup/plugin-replace';
configDotenv();
export default {
...
plugins: [
replace({
__myapp: JSON.stringify({
env: {
isProd: production,
amplitude_api_key : process.env.amplitude_api_key
}
})
}),
]}
当我尝试通过调用访问 env var 时:__myapp.env.API_KEY
我收到此错误:__myapp is not defined
解决方案
似乎嵌套是问题所在。我能够使用以下语法使其工作:
replace({
'process.env.isProd': production,
'process.env.amplitude_api_key': process.env.amplitude_api_key
}),
然后process.env.isProd
在您的应用程序中使用。当然,如果你喜欢这个__myapp
东西,你可以使用__myapp
而不是process
在你的汇总配置中替换功能的左侧。
推荐阅读
- javascript - Angular 等待变量初始化
- android - SearchView 小部件文本未与工具栏的左侧/开始对齐
- automation - 无法单击删除按钮,多视图
- c - 返回枚举的名称而不是它的值
- xslt - 从 XSLT 调用 XQuery,在 XQuery 中动态构建 XSLT?
- excel - 如何检查单元格是否存在于不同工作表的范围内,然后引用它
- python - 我在循环中调用一个函数并将结果存储在一个矩阵中,我该如何并行化它?
- python - scipy中的Sobel过滤器实现
- ipython - 蟒蛇。如何在下一行继续代码?
- c# - 如何获得“jan-2018, Feb-2018, Mar-2018”作为下拉列表