67 votes

Dépendance critique: la fonction require est utilisée d'une manière dans laquelle les dépendances ne peuvent pas être extraites statiquement

Est-ce que quelqu'un a rencontré le message d'avertissement ci-dessous dans "ng serve"?

AVERTISSEMENT dans ./node_modules/@angular/compiler/src/util.js 10:24-31 Dépendance critique: la fonction require est utilisée de manière à ce que les dépendances ne puissent pas être extraites statiquement wdm: Compilé avec des avertissements.

Version d'Angular:

Angular CLI: 6.0.8 Node: 8.11.3 OS: darwin x64 Angular: 6.0.9 ... animations, common, compiler, compiler-cli, core, forms ... http, language-service, platform-browser ... platform-browser-dynamic, router, upgrade

J'ai essayé de mettre à jour CLI et Angular mais sans succès. Le code à l'intérieur de util.js ressemble à :

function (factory) {
    if (typeof module === "object" && typeof module.exports === "object") {
        var v = factory(require, exports);
        if (v !== undefined) module.exports = v;
    }
    else if (typeof define === "function" && define.amd) {
        define("@angular/compiler/src/util", ["require", "exports"], factory);
    }
}

138voto

Jorge Solis Points 1318

J'ai reçu cette erreur et j'ai trouvé ceci : https://fluin.io/blog/critical-dependency-cannot-be-statically-extracted, où l'auteur montre qu'il recevait le même avertissement. Cependant, je n'utilisais pas Angular Elements, mais j'ai eu l'idée que cela pourrait être lié au même problème, donc j'ai continué et vérifié si j'utilisais @angular/compiler/src/core dans l'un de mes imports.

Et c'était effectivement le cas. La solution était aussi simple que de supprimer la ligne d'import, qui dans mon cas était :

import { ViewEncapsulation } from '@angular/compiler/src/core';

Et ensuite l'éditeur l'a automatiquement importé comme suit :

import { Component, OnInit, ViewEncapsulation } from '@angular/core';

J'espère que cela aidera.

3 votes

Merci! C'est la solution que je cherchais.

2 votes

Merci également. Ce n'est pas seulement ce module, vérifiez vos imports pour des imports indésirables.

1 votes

C'est tout. Problème résolu en Angular 7. Merci.

5voto

Raghu Pyaram Points 1

Ce avertissement est lancé si vous importez à partir du chemin src

Modifiez l'instruction d'importation des composants de

import { ChangeDetectionStrategy, ViewEncapsulation } from '@angular/compiler/src/core';

à

import {  ViewEncapsulation, ChangeDetectionStrategy} from '@angular/core';

4voto

Yuri Points 1989

Recherchez votre application pour les imports.

Il y a de fortes chances que vous ayez importé quelque chose de similaire à from '@angular/compiler/foo' par erreur.

0voto

Helzgate Points 11

J'ai eu cette erreur (comme indiqué dans le titre) et plusieurs autres parce que j'ai essayé d'implémenter une bibliothèque tierce.

Donc en bref, si vous obtenez ces erreurs, essayez de regarder vos bibliothèques tierces. Dans mon cas, il s'agissait d'une bibliothèque de numérisation de codes-barres provenant de Scanbot.io.

1 votes

Ne t'en fais pas. J'ai trouvé la vraie cause. Cet import suivant était dans l'un de mes composants : import { Content } from '@angular/compiler/src/render3/r3_ast'; Après l'avoir supprimé, plusieurs erreurs ont disparu. Il s'agissait d'une dépendance qui a été automatiquement résolue lors de l'importation de quelques codes de base pour prendre en charge le SDK Scandit.io.

0voto

wcjord Points 81

Cela m'est arrivé à partir de cette importation :

import { Message } from '@angular/compiler/src/i18n/i18n_ast';

J'ai une interface Message mais la fonction d'importation automatique a été par défaut sur celle-ci ci-dessus.

0 votes

Pouvez-vous résoudre cette erreur ? Si oui, comment ?

0 votes

Oui, assurez-vous de ne pas importer de là. Vous devriez importer depuis la racine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X