本文总结了SPFx解决方案的部署方式以及在部署前需要考虑的问题。
首先考虑打包,SPFx提供了两种打包方式,一种是在.sppkg文件中包含代码,一种是不包含代码。这个可以在配置文件“package-solution.json"中指定:
"includeClientSideAssets": true, //true为包含代码,false为不包含代码
1,包含代码 主要用于Office CDN,方便开发和快速验证,但是只能将代码部署到Office CDN上,不够灵活
2,代码分离 主要的部署方式,可以灵活选择代码部署位置。代码部署位置在配置文件“write-manifests.json”中指定:
"cdnBasePath": "https://contoso.sharepoint.com/.../"
然后考虑三种部署方式
1,最方便快捷:Office CDN方式,这种方式由于.sppkg文件中包含代码,因此不需要指定代码部署位置,直接将.sppkg包上传到App Catalog中即可使用,因此最方便快捷。
2,部署在SharePoint Online中。可以将代码位置指定为某个文档库,这样可以将你的代码限制在某个站点,并且可以控制访问权限。这种方式,.sppkg文件中不含代码,因此需要额外将代码文件上传到文档库。
3,部署在其他位置,这里可以是其他CDN或者任何可以通过网络访问到的地方。与第二种方式一样,这种方式也需要额外部署代码,但是需要自己控制访问代码的权限。
最后考虑把.sppkg包放在哪里。
.sppkg包只能上传到App Catalog中。目前SharePoint Online支持两种级别的App Catalog,一种是整个租户Tenant的App Catalog,一种是站点集Site Collection级别的App Catalog:
站点集的App Catalog: 需要Tenant管理员执行powershell命令启用才能使用。启用后自动创建App Catalog文档库。部署在站点集级别App Catalog中的解决方案仅能在当前Site Collection中使用。(注意此种方式不支持Isolated web part的部署,Isolated web part的解决方案只能部署在Tenant App Catalog中)。
启用站点集App Catalog的命令为:
# get a reference to the site collection where the
# site collection app catalog should be created
$site = Get-SPOSite https://contoso.sharepoint.com/sites/marketing
# create site collection app catalog
Add-SPOSiteCollectionAppCatalog -Site $site
Tenant App Catalog:需要Tenant管理员创建App Catalog站点,其中部署的解决方案可以在整个租户中使用。
另外,如果解决方案中需要调用Graph API,就涉及到对于Graph API的权限的审批。
Graph API权限的批准:
普通web part:所请求的API一经批准,租户中所有的App都可以使用。
Isolated web part: 所请求的API一经批准,只有请求权限的这个App可以使用,但是可以在任意的站点中使用。