Inherits Cloud

Loving Microsoft Cloud, specially Office 365

Categoría: spfx

[SPFx] Extendiendo Gulp y ejecutando tareas en serie (o en paralelo)

Como seguramente ya sabréis, el nuevo SharePoint framework hace uso de Gulp para todas las tareas de “compilación”: bundle de archivos JavaScript, generar el package file, etc. Sin embargo, a la hora de crear tus propias tareas de Gulp, no sigue el mecanismo “normal” de Gulp, por lo que no podemos simplemente agregar una nueva “Task” en el “Gulpfile.js”:

image

Para agregar una tarea de Gulp personalizada, tenemos que pasar por el sistema propio de build, y que está definido en el package “@microsoft/sp-build-web

image

image

El objeto build, nos permite llamar a una función “task” y pasar la definición de nuestra tarea. Sería un esqueleto parecido a:

image

Digamos sin embargo, que lo que nos interesa es ejecutar un par de Tasks, pero hacerlo de forma secuencial. Entonces, tenemos que usar las función “serial” del mismo objeto build. El siguiente snippet de codigo ejecuta las tareas “task-1” y “task-2” conjuntas, y de forma secuencial:

Si ejecutamos la tarea, vemos como el resultado es el esperado:

Si lo que nos interesa es ejecutar las tareas en paralelo, el mecanismo es identico, pero utilizando la funcion, “parallel” del objecto build.

Espero que os sirva!

@Luismanez

Error importando un SPFX WebPart en el Workbench de SharePoint Online

Estabas desarrollando algun webpart en el nuevo SPFX, probándolo con esa maravilla que es el Workbench de SharePoint Online (/_layouts/15/workbench.aspx), y de repente, tras algún cambio insignificante, al importarlo en la pagina, te encuentras un error de importación parecido a este:

 

image

 

Supongo que el error puede variar en función de la Tenant, pero básicamente se queja de que alguna dependencia del propio SPFX parece que no se está cargando.

Pues bien, no sé exactamente por qué se produce el error, pero parece que el bundle no se está generando correctamente. Lo que si te puedo contar es el “workaround” que me ha funcionado a mi. Viendo que el bundle no se generaba bien (incluso creando un webpart de cero con la template de yeoman), he probado que el mismo código del webpart, pero haciendo el “gulp serve” desde otra maquina cliente, si que funcionaba bien, así que he recurrido al mejor recurso del Informático: re-instalar el paquete desde el npm:

npm i -g @microsoft/generator-sharepoint@latest

Y así, sin mas, y sin cambiar nada del webpart que antes no funcionaba, tras volver a hacer un “gulp serve”, todo ha vuelto a funcionar con normalidad. Si me vuelve a suceder intentare abrir un “issue” en el sitio de github, ya que tengo la sensación de que en determinadas circunstancias, el proceso de bundle que hace con Gulp, webpack, etc, no hace bien su trabajo, y ya no hay manera de que vuelva a funcionar bien si no re-instalas el paquete.

@luismanez

© 2017 Inherits Cloud

Tema por Anders NorenArriba ↑