[英]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 部分讀取它。
不確定這是否以任何方式是常見的做法(可能不是),但只是提供一些選擇。
您能否擴展您嘗試訪問的變量?
如果您提供更多詳細信息或發布您要完成的代碼片段,我相信您可以找到您正在尋找的東西
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.