簡體   English   中英

如何在運行時像 ENV 變量一樣配置 spfx 擴展?

[英]How to configure a spfx extension at runtime like ENV vars?

例如,如果我編寫一個 node express 應用程序,我就有機會從服務器配置中傳遞一些環境變量。

SharePoint有機會也在線嗎? 由於 SharePoint Online 是一項托管服務,恕我直言,沒有辦法這樣做。

有可能有解決方法嗎?

我堅持創造關於這個問題的任何想法。

歡呼托馬斯

作為一個選項,您可以使用屬性包(例如,網站屬性包)來定義網站的自定義屬性,然后從您的 SPFx web 部分獲取它們。 你在SharePoint里面有很多東西的財產包,包括租戶,地盤,名單等等。

為站點設置屬性包鍵/值 (powershell):

Connect-PnPOnline -Url https://<yourdomain>.sharepoint.com/sites/<yoursite>
Set-PnPPropertyBagValue -Key MYKEY -Value MYVALUE

要從 SPFx web 部分獲取此“站點”值,您可以使用allProperties API(在 web 部分初始化的某處):

const propertyBag = await sp.web.allProperties.get();
const value = propertyBag.MYKEY;

console.log(value) // logs "MYVALUE"

如果您不使用 pnpjs,則使用相同的代碼:

// context = <web part context>
const apiUrl = `${context.pageContext.web.absoluteUrl}/_api/web/allProperties`;
const rsp = await context.spHttpClient.get(apiUrl, SPHttpClient.configurations.v1);
const propertyBag = await rsp.json();
const value = propertyBag.MYKEY;

或者,您可以只放置 .env 文件(例如站點資產),然后從您的 SPFx web 部分讀取它。

不確定這是否以任何方式是常見的做法(可能不是),但只是提供一些選擇。

您能否擴展您嘗試訪問的變量?

  • SPFx 有幾個“環境”屬性可用作上下文的一部分 object
  • 使用應用程序清單文件部署擴展時,可以更改擴展項目根目錄中的屬性
  • 如果前 2 個不適合您,則 Nikolay 上面列出的選項是選項。

如果您提供更多詳細信息或發布您要完成的代碼片段,我相信您可以找到您正在尋找的東西

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM