SPFX向SharePoint Server 2019现代页注入CSS/JS部署报错咨询
问题背景
- 运行环境:SharePoint Server 2019 现代通信网站
- 需求:自定义改造网站开箱即用页眉模板,新增页脚模块
- 尝试方案:使用PnP提供的react-application-injectcss SPFX应用扩展实现CSS、JavaScript注入
- 部署异常:将示例生成的SPPKG文件部署到SharePoint Server 2019应用目录时抛出以下错误:
验证应用清单时出现错误:Xml验证异常:第1行第322位置存在未声明的'IsDomainIsolated'属性。
错误根因
你使用的开源示例默认适配SharePoint Online环境,采用的SPFX框架版本高于SharePoint Server 2019支持的最高版本。
IsDomainIsolated是SPFX v1.10及以上版本才新增的清单配置属性,SharePoint Server 2019最高仅支持SPFX v1.4.1版本,无法识别高版本新增属性,因此触发XML验证失败。
修复步骤
- 降级项目SPFX版本到v1.4.1
- 全局安装对应版本的SPFX生成器:执行命令
npm install -g @microsoft/generator-sharepoint@1.4.1 - 进入示例项目根目录,删除原有
node_modules文件夹与package-lock.json文件 - 修改
package.json中所有SPFX相关依赖的版本号为1.4.1,核心依赖参考如下配置:"dependencies": { "@microsoft/sp-core-library": "1.4.1", "@microsoft/sp-application-base": "1.4.1", "@microsoft/sp-dialog": "1.4.1", "@microsoft/decorators": "1.4.1" }, "devDependencies": { "@microsoft/sp-build-web": "1.4.1", "@microsoft/sp-module-interfaces": "1.4.1", "@microsoft/sp-webpart-workbench": "1.4.1", "typescript": "~2.5.3", "gulp": "~3.9.1" }
- 全局安装对应版本的SPFX生成器:执行命令
- 清理高版本专属配置
- 打开项目下
config/package-solution.json文件,找到IsDomainIsolated配置项直接删除 - 检查
sharepoint/assets/ClientSideInstance.xml、sharepoint/assets/elements.xml文件,移除所有SPFX v1.4.1版本不支持的新增属性
- 打开项目下
- 重新打包部署
- 在项目根目录执行
npm install安装适配版本的依赖 - 依次执行以下命令重新生成发布包:
gulp clean gulp build gulp bundle --ship gulp package-solution --ship - 将新生成的SPPKG包上传到SharePoint Server 2019应用目录即可正常完成部署。
- 在项目根目录执行
注意:SPFX v1.4.1与高版本存在少量API差异,如果构建过程中出现API兼容报错,对应调整代码写法适配v1.4.1规范即可。
内容的提问来源于stack exchange,提问作者Noorul
相关产品推荐
相关产品推荐

