此文已使用 Salesforce 機器翻譯系統翻譯。更多詳細資料請參見此處。
Managed Runtime 環境變數可讓您將變數新增至在某個環境中執行的應用程式程序當中,而無需變更程式碼。環境變數能安全儲存,是下列使用案例的理想選擇:
如需更多詳細資料,請參閱環境變數。
在本教學中,我們將使用環境變數,在不變更程式碼的情況下變更 React.js 轉譯。您可以透過 process.env 存取環境變數,這只能在 Node.js 中取得,無法在瀏覽器中取得。PWA Kit 轉譯是同構的,因為它在用戶端和伺服器端都會轉譯。因此,要使環境變數在 React.js 中可用,您可以將它們新增到 PWA Kit 設定檔中,如本教學所示。
在此範例中,我們將使用環境變數,在您的網站上啟用功能。例如,在有限的時間內,您可以測試一項新功能 (如快速結帳)。然後,您可以監控購物者對該功能的參與度,以瞭解其影響。
要完成本教學,請首先:
在執行本教學的命令之前,請以實際值取代預留位置。預留位置的格式為:$PLACEHOLDER
在您的專案中,建立您選擇的內容或功能。例如,在首頁上建立英雄橫幅。
要在目前的工作階段中設定環境變數,請開啟終端機並執行以下命令:
set ENABLE_FEATURE='true'export ENABLE_FEATURE=‘true’請執行以下命令,檢查環境變數設定是否正確:
echo %$ENABLE_FEATURE%echo $ENABLE_FEATURE該命令會傳回以下輸出:true
將此 JavaScript 程式碼新增至專案的設定檔 — config/default.js:
1function parseEnvVar(envVarName) {
2 const val = process.env[envVarName];
3 if (val === undefined) {
4 throw new Error(`Environment variable ${envVarName} is required.`);
5 }
6 try {
7 return JSON.parse(val);
8 } catch (err) {
9 throw new Error(
10 `Environment variable ${envVarName} must be a valid JSON string.`
11 );
12 }
13}
14module.exports = {
15 app: {
16 enableFeature: parseEnvVar("ENABLE_FEATURE") || false,
17 },
18};app/pages/home/index.jsx:1import { getConfig } from "@salesforce/pwa-kit-runtime/utils/ssr-config";
2
3const Home = () => {
4 const config = getConfig();
5 const enableFeature = config.app.enableFeature;
6 return enableFeature && <h1>My New Feature</h1>
7};
8
9export default Home;npm start 啟動開發伺服器,然後在本機上前往首頁,查看轉譯的功能。建議在非 Production 環境中測試這些步驟,然後再將變更部署到生產 Production 環境。
在執行本教學的命令之前,請以實際值取代預留位置。預留位置的格式為:$PLACEHOLDER
1curl "https://cloud.mobify.com/api/projects/$PROJECT_ID/target/$ENVIRONMENT_ID/env-var/" \
2 --request 'PATCH' \
3 --header 'Content-Type: application/json' \
4 --header 'Accept: application/json' \
5 --header "Authorization: Bearer $MOBIFY_API_KEY" \
6 --data '{"ENABLE_FEATURE": {"value": "true"}}'