La version complète de lodash est disponible avec le SharePoint Framework

Jan 3, 2018

TL ; DR ;

Microsoft a remplacé @types/es6-collections par la librairie native es2015.collection dans la version 1.4.0. Cette librairie contenait une version conflictuelle de weakmap qui posait problème avec des packages comme lodash.

Version longue

Microsoft a récemment livré la version 1.4.0 du SharePoint Framework et de ses dépendances. Cette version contient beaucoup d’améliorations dont une en particulier qui a est passée inaperçue pour pas mal d’entre nous.

@types/es6-collections a été remplacé par la librairie es2015.collection (native, fournie par le compilateur et les moteurs JS). Ce package avait une définition « spéciale » de WeakMap (entre autres) qui causait des problèmes pour de nombreux packages, incluant un de mes favoris : lodash.

Pour contourner ce problème Microsoft avait dû fournir dans des versions précédentes @microsoft/sp-lodash-subset qui, comme son nom l’indique, fournit un sous-ensemble de lodash sans certaines méthodes très utiles telles que map.

Quelle version utiliser ?

C’est une question complexe pour le moment Microsoft n’ayant pas fourni de directives, je vais vous fournir les pour et contre de l’utilisation du sous-ensemble au lieu de répondre directement à la question.

Pour :

  • Le subset est plus léger, ce qui signifie des temps de chargement plus rapide pour vos usagers.
  • Le subset est maintenu par Microsoft, ce qui signifie qu’il est moins probable qu’il brise le SPFX avec une mise à jour.

Contre :

  • Le subset ne contient pas l’ensemble des fonctionnalités de lodash, ce qui signifie que vous allez probablement faire plus de choses à la main.
  • Le subset est maintenu par Microsoft, ce qui signifie que de futures améliorations de lodash mettront pus de temps à en être disponibles.
  • Le subset n’est pas disponible sur un CDN, ce qui peut impacter négativement vos temps de chargement dépendamment d’autres considérations (support HTTP2, qualité de votre CDN…)
  • Le subset sera peut-être amené à disparaître, considérant que cela représente du travail additionnel de peu de valeur pour Microsoft, ils décideront peut-être de se concentrer sur d’autres choses.

Tout cela étant dit, rien ne vous empêche de travailler avec les deux dès lors que votre solution basée sur SPFX >= 1.4.0 et la mise à jour (du subset vers la version complète) est assez facile : quelques remplacements à effectuer.


Edité la dernière fois le 27 May 2021 par Vincent Biret


Tags: