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.