node.js - 如何在本地使用/替换 Svelte 组件中的 env 变量
问题描述
我正在寻找.env
Svelte 中文件周围缺失的部分。我仅将 env 文件用于本地开发,如下所示:
GRAPHQL_URL=http://localhost:8010/proxy/graphql
在rollup.config.js
我想将 env 变量替换为可以在 Svelte 组件中使用的字符串(使用@Rollup/plugin-replace
):
export default [{
...
plugins: [
replace({
preventAssignment: true,
GRAPHQL_URL: process.env.GRAPHQL_URL
})
...
有了这个,我希望将一个变量GRAPHQL_URL
注入到包中并在一个苗条的文件中可用?像这样:
mycomponent.svelte
:
const url = GRAPHQL_URL;
console.log(url); // expect "http://localhost:8010/proxy/graphql"
但我得到:
Uncaught ReferenceError: process is not defined
at instanceOf.mjs:11
at web.js:160
我开发npm run dev
包含rollup -c -w
. 节点版本 16 和 NPM 版本 7。
我尝试了一些dotenv
指南但没有成功。
解决方案
您需要对变量进行字符串化,而不是注入进程本身:
GRAPHQL_URL: JSON.stringify(process.env.GRAPHQL_URL)
推荐阅读
- vagrant - 在 mac 上使用 scotch.io 创建虚拟机时出错
- angular - Angular 5等待多个子通知
- python - 使用 .format() 的 Python3 打印语句反向打印
- cxf - Apache CXF 安装选项到 Tomcat
- c# - 从 WebException 获取 JSON 响应
- laravel - Laravel 路由articles.store 未定义
- haskell - 函子链是如何完成的
- ios - iOS 12 IAP 沙盒
- sweetalert2 - Sweetalert 不适用于 IE 11,适用于 FireFox、Chrome
- javascript - I get "ReferenceError: window is not defined" even though I check for window