Shopify 扩展结帐中的环境变量

问题描述 投票:0回答:1

我有一个调用服务器端点的 Shopify 结帐扩展程序。此服务器端点对于本地、暂存和生产有所不同。我尝试按照本教程在 GitHub Actions 中引入 ci/cd 进行扩展:https://shopify.dev/docs/apps/tools/cli/ci-cd。但是,我不知道是否可能或如何传递环境变量或扩展。

// I want this to change depending on the environment
export const apiUrl = "https://staging_endpoint.com";

该扩展程序在浏览器的沙箱中运行,因此它无法访问环境变量,因为它不是节点进程。该扩展是一个打字稿,并与以下 tsconfig 发生反应:

{
  "compilerOptions": {
    "jsx": "react-jsx",
    "esModuleInterop": true,
    "strict": true,
    "types": ["react"]
  },
  "include": ["./src"]
}

这是扩展名.toml:

api_version = "2023-07"

[[extensions]]
type = "ui_extension"
name = "zipr-discount-ext"
handle = "zipr-discount-ext"

[[extensions.targeting]]
module = "./src/index.tsx"
target = "purchase.checkout.block.render"
[extensions.capabilities]
network_access = true
block_progress = false
api_access = true

shopify 应用程序前端是使用

vite
构建的,这些是软件包版本:

    "@shopify/app": "^3.50.0",
    "@shopify/cli": "^3.50.0",
    "@shopify/ui-extensions": "^2023.10.0",
    "@shopify/ui-extensions-react": "^2023.10.0",
    "@shopify/shopify-api": "^7.3.1",

我尝试过像这样引入 dotenv 包:

import dotenv from "dotenv";

dotenv.config();
const myVariable = process.env.REACT_APP_MY_VARIABLE;

或者使用VITE__

但显然这行不通,因为我们浏览器中没有 process.env。

reactjs environment-variables shopify checkout
1个回答
0
投票

虽然我希望我们有一种方法来处理环境变量,但我最终使用了商店的元字段来处理它。

这是我为此撰写的博客文章:https://liquidonate.com/blog/shopify-development-hacks-environment-variable-in-checkout-ui-extension

© www.soinside.com 2019 - 2024. All rights reserved.