Webpack 4 a ajouté une nouvelle fonctionnalité: il supporte maintenant un sideEffects
drapeau dans l' package.json
des modules, il est le groupement.
De Webpack 4: publié aujourd'hui
Sur les 30 derniers jours, nous avons travaillé en étroite collaboration avec chacun des cadres pour s'assurer qu'ils sont prêts à soutenir webpack 4 dans leur cli etc. Même populaire de la bibliothèque comme lodash-es, RxJS soutiennent des effets de drapeau, en utilisant leur dernière version, vous verrez instantanée du faisceau diminue la sortie de la boîte.
De Webpack docs
Les "effets secondaires": false flag en grande-module package.json indique que le paquet de modules ont pas d'effets secondaires (à l'évaluation) et n'exposent que des exportations. Cela permet à des outils comme webpack pour optimiser les ré-exportations.
Tandis que le deuxième lien affiche le résultat de l'utilisation du drapeau, il n'a pas d'expliquer clairement ce qui constitue un effet secondaire. ES6 comprend le concept d'effets secondaires pour les modules comme indiqué ici, mais comment est-ce lié à ce Webpack considère les effets secondaires.
Dans le contexte de l' sideEffects
drapeau, ce n'est un module de la nécessité d'éviter d'utiliser sideEffects:false
, sans questions, ou inversement, ce n'est un module devez faire afin d'utiliser sideEffects:false
, sans questions.
Pour être complet, malgré @SeanLarkin solide de réponse ci-dessous, j'aimerais obtenir des éclaircissements sur les points suivants:
Évidemment, les effets secondaires signifie quelque chose de particulier dans fp et comprendrait d'enregistrement (console ou ailleurs) et le fait de lancer des erreurs. Je suppose que dans ce contexte, sont parfaitement acceptables?
Peut un module contiennent des références circulaires et toujours utiliser
sideEffects: false
?Est-il possible de vérifier ou d'un module est en mesure de vérifier qu'un module peut -
sideEffects: false
- delà de essayer de traquer les erreurs causées par une mauvaise utilisation?Existe-il d'autres facteurs qui pourraient empêcher un module d'être en mesure d'utiliser
sideEffects: false
?