Desarrollo de SharePoint Framework con SharePoint Server 2016 Feature Pack 2
SharePoint Server 2016 Feature Pack 2 admite elementos web del lado cliente de SharePoint Framework hospedados en páginas clásicas de SharePoint.
También se ofrece una introducción al desarrollo de SharePoint Framework en SharePoint Server 2016 con Feature Pack 2 en el siguiente vídeo del canal de YouTube, Microsoft 365 Platform Communtiy (PnP).
Versión de SharePoint Framework que se va a usar
Dado que SharePoint Online y SharePoint Server 2016 tienen distintos ciclos de publicación de las nuevas funcionalidades, también tienen distintas funcionalidades en cuanto a SharePoint Framework. SharePoint Online siempre usa la versión más reciente de SharePoint Framework, pero SharePoint Server 2016 solo admite la versión que coincide con las dependencias del lado servidor de los paquetes implementados.
SharePoint Server 2016 Feature Pack 2 admite elementos web del lado cliente de SharePoint Framework hospedados en páginas clásicas de SharePoint que se hayan creado con SharePoint Framework v1.1.0. Esto quiere decir que, al dirigirse a la plataforma de SharePoint Server 2016, necesita usar SharePoint Framework v1.1.0 debido a las dependencias de la versión del lado del servidor.
Si piensa usar los mismos elementos web del lado cliente en SharePoint Server 2016 y en SharePoint Online, tiene que utilizar SharePoint Framework v1.1.0 como versión básica para asegurarse de que el elemento web funciona en ambos entornos.
A partir de la versión 1.3, el generador de Yeoman de SharePoint Framework admite el scaffolding de soluciones que usan la versión más reciente de SharePoint Framework destinadas al uso con SharePoint Online y de soluciones que pueden usarse con SharePoint local basado en la versión v1.1.0 de SharePoint Framework. No es necesario instalar una versión independiente del generador de Yeoman de SharePoint Framework para aplicar scaffolding a soluciones destinadas al uso con SharePoint local.
Importante
A partir de la versión 1.4, el generador de Yeoman de SharePoint Framework admite un nuevo atributo de includeClientSideAssets
, que puede usarse para indicar que los recursos deberían incluirse en el paquete sppkg. Esta funcionalidad, sin embargo, no es compatible con SharePoint 2016. Cuando una solución es destinada a SharePoint Server 2016, este atributo en ./config/package-solution.json debería actualizarse como false
.
Hospedar la solución de SharePoint Framework para su implementación local
La implementación local de elementos web del lado cliente de SharePoint Framework requiere dos acciones diferentes:
- Implementar el paquete de solución en el catálogo de aplicaciones de SharePoint.
- Hospedar los archivos JavaScript en una ubicación centralizada
Puede hospedar los archivos JavaScript en la ubicación que más convenga a su entorno. Por ejemplo, estos archivos pueden hospedarse en cualquiera de las siguientes ubicaciones:
- Azure CDN: instalación similar a la de SharePoint Online. Requiere que los usuarios finales tengan conectividad a Internet.
- Servidor local en la red: servidor que hospeda los archivos JavaScript de la red corporativa. Puede usarse la tecnología que se prefiera siempre que los archivos sean accesibles a través de solicitudes HTTP.
- SharePoint Server 2016: también pueden hospedarse los archivos en la granja de SharePoint local. Por ejemplo, puede definir un sitio estandarizado en la granja donde se hospedan todos los recursos de SharePoint Framework. Pero tenga en cuenta que, de manera predeterminada, no se permite cargar archivos .json en bibliotecas de SharePoint Server 2016, por lo que se requiere una configuración de nivel de granja que se ajuste a esta opción.
Puede encontrar más detalles sobre tipos de archivos bloqueados en SharePoint 2016 en el siguiente artículo de soporte técnico: Tipos de archivos que no se pueden agregar a una lista o biblioteca.
Consideraciones sobre el entorno de desarrollo
Cuando desarrolla elementos web del lado del cliente de SharePoint Framework, necesita conectividad a Internet para acceder a los paquetes npm. Esto es necesario cuando se aplica scaffolding a las soluciones mediante las plantillas de Yeoman de SharePoint Framework.
Si el acceso a Internet no está disponible para las máquinas de desarrollo, puede configurar un registro local para los paquetes npm necesarios. Si bien, esto requiere software adicional y una cantidad significativa de trabajo para configurar y mantener versiones de paquete local con paquetes de la galería de npm real.
El documento guía Desarrollo basado en equipos en SharePoint Framework incluye diferentes opciones de instalación del entorno de desarrollo, entre las que se incluye que tenga que admitir varias versiones de SharePoint Framework.
versiones de Node.js, Gulp & Yeoman
Las dependencias de los marcos, las herramientas y las versiones asociadas de SPFx v1.1 no coinciden con la misma matriz de dependencias para las versiones más recientes de SPFx. En estos casos, es posible que deba instalar versiones específicas de las herramientas.
Por ejemplo, Gulp v3.* solo se admite hasta Node.js v10, mientras que Gulp v4.* se admite desde Node.js v12 y versiones posteriores. Dado que SPFx v1.1 solo se admite en Node.js v6 y Node.js v8, debe asegurarse de que tiene instalada una versión anterior de Node.js, así como una versión anterior de Gulp & Yeoman.
Nota:
El equipo de Gulp introdujo un paquete separado, gulp-cli, que debe instalarse globalmente. Los proyectos que usan Gulp v3 & Gulp v4 pueden usarlo.
Obtenga más información sobre gulp-cli aquí: gulpjs/gulp/#2324.
Microsoft recomienda usar la versión más reciente del generador de Yeoman para SharePoint Framework (@microsoft/generator-sharepoint) que admita la creación de proyectos locales: SPFx v1.6.0.
Importante
El generador de Yeoman para SharePoint Framework, a partir de la versión 1.13.0, solo admite proyectos para SharePoint Online. Obtenga más información sobre este cambio en lasnotas de la versión de SharePoint Framework v1.13. Sin embargo, SPFx 1.1.1 solo admite hasta Node.js v6. Por lo tanto, debe obtener la versión más reciente del generador de Yeoman para SharePoint Framework (v1.6.0) que funciona en la misma versión de Node.js (v6) en la que se admite SPFx v1.1.0.
Instalar Node.js v6.17.1
Instalar dependencias globales
npm install gulp-cli@2.3.0 --global npm install yo@2.0.0 --global npm install @microsoft/generator-sharepoint@1.6.0 --global
Para obtener más información, vea Compatibilidad con las bibliotecas y herramientas de desarrollo de SharePoint Framework.
Determinar la versión que se usó para una solución
Si tiene soluciones de SharePoint Framework existentes y quiere confirmar qué versión de SharePoint se ha utilizado con ellas, tendrá que comprobar las siguientes ubicaciones:
- .yo-rc.json: archivo en la carpeta raíz de la solución que almacena la versión de la plantilla de Yeoman de SharePoint Framework que ha sido usado para crear la solución.
- package.json: archivo en la carpeta raíz de la solución que contiene referencias a versiones de paquete usadas en la solución.
- npm-shrinkwrap.json: archivo en la carpeta raíz de la solución que contiene información sobre las versiones exactas utilizadas (si ha utilizado el comando
npm shrinkwrap
para bloquear las versiones exactas de la solución). - package.json: archivo de la carpeta node_modules/@microsoft/sp-webpart-base que contiene un atributo
version
que, si tiene los paquetes instalados en su solución, coincide con la versión de SharePoint Framework utilizada.
Solución de problemas
Impacto de Node.js v6, Node.js v8, HTTP1, & HTTP2
En el momento de la publicación de la versión 1.1, Node.js estaba realizando la transición de Node.js v6.x a v8.x. En esta actualización, Node.js introdujo un cambio en el cual el valor HTTP predeterminado pasó de HTTP1 a HTTP2. SPFx v 1.1 fue concebido para HTTP1, no HTTP2, por lo que este cambio afectó al servidor web local para los proyectos de SPFx v 1.1.
Para resolver esto, en Node.js v8.x puede forzar el uso de HTTP1 si establece la siguiente variable de entorno para indicar a Node.js que debe usar HTTP1 en lugar del HTTP2 predeterminado: NODE_NO_HTTP2=1
. Esta variable de entorno solo existe en Node.js v8.x. Por lo tanto, si está creando soluciones de SPFx para SharePoint Server 2016, debe usar Node.js v8.x.
Este problema no afecta a las versiones posteriores de SPFx ya que se han actualizado para admitir los HTTP.
Para obtener más información, veaissue #1002.