[英]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.