Le package npm lodash
en lui-même n'est pas un module ECMAScript et génère donc l'avertissement. Il existe plusieurs façons de résoudre ce problème :
Remplacer par une bibliothèque modulaire ES (recommandé)
Certaines bibliothèques proposent des versions modulaires ES. Dans le cas de lodash
, vous pouvez le remplacer par lodash-es.
Exécutez npm install --save lodash-es
.
Remplacez maintenant toutes les importations de lodash
par lodash-es
.
Assurez-vous également d'importer la bibliothèque avec des instructions d'importation ES :
import { keys } from 'lodash-es';
Autoriser les dépendances CommonJS
S'il n'existe pas de version modulaire ES pour votre bibliothèque, ou si pour une raison quelconque cela ne vous importe pas, vous pouvez autoriser des dépendances CommonJS spécifiques dans le fichier angular.json
:
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"allowedCommonJsDependencies": ["lodash"]
}
}
}
Depuis la version 10.0.1 d'Angular CLI, vous pouvez utiliser des globs dans allowedCommonJsDependencies
. Cela signifie que si vous passez lodash
, les sous-chemins (par exemple lodash/keys
) seront également autorisés.
Référence aux docs : https://angular.io/guide/build#configuring-commonjs-dependencies