繁体   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