使用 SharePoint 2019 和 SharePoint Server SE 进行 SharePoint 框架开发

浏览 : 682 次 Sun, 08 May 2022 11:43:29 GMT

SharePoint Server 2019 支持经典和新式页面中的 SharePoint 框架客户端 Web 部件,及新型页面中的扩展。

 重要

SharePoint Server 订阅版 (SE) 与 SharePoint Server 2019 具有相同的 SharePoint 框架依赖项和要求。

使用 SharePoint 框架的哪个版本

由于 SharePoint Online 和 SharePoint Server 2019 针对新功能具有不同的发布周期,因此就 SharePoint 框架而言,它们也具有不同的功能。 SharePoint Online 始终使用最新版本的 SharePoint 框架,但 SharePoint Server 2019 仅支持与已部署程序包的服务器端依赖项相匹配的版本。

SharePoint Server 2019 使用 SharePoint 框架 v1.4.1 支持在经典或新型 SharePoint 页面上托管的 SharePoint 框架客户端 Web 部件。 SharePoint Server 2019 也使用 SharePoint 框架 v1.4.1 支持在经典或新式 SharePoint 页面上托管的 SharePoint 框架扩展。 这意味着,当面向 SharePoint Server 2019 平台时,因为服务器端版本依赖关系,将需要使用 SharePoint 框架 v1.4.1。

从 1.3 开始,SharePoint 框架 Yeoman 生成器支持使用 SharePoint 框架最新版本(旨在与 SharePoint Online 一起使用)的基架搭建解决方案,以及可用于 SharePoint 本地环境的解决方案(基于 SharePoint 框架 v1.1.0 或 v1.4.1)。无需安装单独版本的 SharePoint 框架 Yeoman 生成器,为解决方案提供支架,才能使用 SharePoint 本地部署。

开发环境考虑事项

在开发 SharePoint 框架客户端 Web 部件时,需要 Internet 连接才能访问 npm 包。 使用 SharePoint 框架 Yeoman 模板为解决方案搭建基架时,这是必要条件。

如果开发计算机无法访问 Internet,可以为所需的 npm 包设置本地内部部署注册表。 然而,这需要额外的软件和大量的工作来设置和维护本地程序包版本与实际 npm 库中的程序包。

Team-based development on the SharePoint Framework(基于团队的 SharePoint 框架开发)指导文档包括开发环境设置适用的不同选项,包括何时需要支持多个 SharePoint 框架版本。

Node.js、Gulp、Yeoman 版本

SPFx v1.4.1 框架、工具和关联版本的相关性与最新版本的 SPFx 的相同相关性矩阵不匹配。 这种情况下,可能需要安装特定版本的工具。

例如,Gulp v3.* 最高只支持 Node.js v10,而 Node.js v12 及更高版本则支持 Gulp v4.*。 由于 SPFx v1.4.1 仅在 Node.js v6 和 Node.js v8 上受支持,因此需要确保安装的是较旧版本的 Node.js、Gulp 和 Yeoman。

 备注

Gulp 团队开发了一个单独的包:gulp-cli,应全局安装此包。 可以由使用 Gulp v3 和 Gulp v4 的项目使用。

在此处详细了解 gulp-cli:gulpjs/gulp/#2324

Microsoft 建议对支持创建本地项目的 SharePoint 框架 (@microsoft/generator-sharepoint) 使用最新版本的 Yeoman 生成器:SPFx v1.10.1。

 重要

SharePoint 框架的 Yeoman 生成器(从 v1.13.0 开始)仅支持 SharePoint Online 项目。 有关此更改的详细信息,请参阅 SharePoint Framework v1.13 发行说明。 但是,SPFx 1.4.1 最仅支持到 Node.js v10。 因此,需要获取适用于支持 SPFx v1.4.1 的相同版本 Node.js (v10) 的 SharePoint 框架 (v1.10.0) 的 Yeoman 生成器的最新版本。 然后,只要在 Yeoman 生成器流中正确地选择环境目标,解决方案结构会通过 v1.4.1 版本包创建而成。

  1. 安装 Node.js v10.24.1

  2. 安装全局依赖项

    控制台
    npm install gulp-cli@2.3.0 --global
    npm install yo@2.0.6 --global
    npm install @microsoft/generator-sharepoint@1.10.0 --global
    

有关详细信息,请参阅 SharePoint 框架开发工具和库兼容性

确定解决方案使用的版本

如果现在具备 SharePoint 框架解决方案,并且想确认解决方案使用了哪个版本的 SharePoint 框架,则需要检查以下位置:

  • .yo-rc.json: 解决方案根文件夹中的文件,可存储创建解决方案时使用的 SharePoint 框架 Yeoman 模板版本。
  • package.json: 解决方案根文件夹中的文件,其中包含对解决方案中使用的程序包版本的引用。
  • npm-shrinkwrap.json: 解决方案根文件夹中的文件,其中包含有关所使用的确切版本的信息(适用于使用 npm shrinkwrap 命令来锁定解决方案确切版本的情况)。
  • package.json:如果你已为解决方案安装了程序包,则文件位于 node_modules/@microsoft/sp-webpart-base 文件夹中,其包含与使用的 SharePoint 框架版本匹配的 version 属性。

疑难解答

Node.js v6、Node.js v8、HTTP1 和 HTTP2 的影响

大约在 v1.1 发布时,Node.js 正从 Node.js v6.x 过渡到 v8.x。 在此更新中,Node.js 引入了默认 HTTP 协议从 HTTP1 切换为 HTTP2 的更改。 SPFx v1.1 是针对 HTTP1(而非 HTTP2)编写的,因此这项更改影响了 SPFx v1.1 项目的本地 Web 服务器。

在 Node.js v8.x 中,可以强制使用 HTTP1,方法是设置以下环境变量,以指示 Node.js 使用 HTTP1,而不是默认的 HTTP2:NODE_NO_HTTP2=1。 此环境变量仅存在于 Node.js v8.x 中。 这就是构建用于 SharePoint Server 2016 的 SPFx 解决方案时应使用 Node.js v8.x 的原因。

此问题不会影响更高版本的 SPFx,因为这些版本已进行更新以支持 HTTPs。

有关详细信息,请参阅问题 #1002

https://docs.microsoft.com/zh-cn/sharepoint/dev/spfx/sharepoint-2019-support

https://nodejs.org/download/release/v10.24.1/

npm install gulp-cli@2.3.0 --global
npm install yo@2.0.6 --global
npm install @microsoft/generator-sharepoint@1.10.0 --global
yo @microsoft/sharepoint
gulp trust-dev-cert
C:\Users\username\AppData\Roaming\npm
https://stackoverflow.com/questions/9283472/command-to-remove-all-npm-modules-globally