typescript 关键依赖性:require函数的使用方式使依赖项无法静态提取

agyaoht7  于 2022-12-30  发布在  TypeScript
关注(0)|答案(8)|浏览(303)

有人在"ng serve"中面临以下警告吗?
./node_modules/@angular/compiler/src/util. js中的警告10:24 - 31关键依赖项:require函数的使用方式使得依赖关系不能被静态提取“wdm”:编译警告。
Angular 版本:
Angular CLI:6.0.8节点:8.11.3操作系统:达尔文x64Angular :6.0.9 ...动画,通用,编译器,编译器-cli,核心,窗体... http,语言服务,平台浏览器...平台浏览器-动态,路由器,升级
我尝试更新CLI和Angular,但没有成功。util.js内的代码如下所示:

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);
    }
}
oyxsuwqo

oyxsuwqo1#

我得到了这个错误,发现这:https://fluin.io/blog/critical-dependency-cannot-be-statically-extracted,作者显示他得到了同样的警告。然而,我没有使用Angular 元素,但我觉得它可能与同样的问题有关,所以我继续检查我是否在任何导入中使用了@angular/compiler/src/core
我确实是这样做的。修复就像删除导入行一样简单,在我的例子中是:

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

然后编辑器自动导入,如下所示:

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

yacmzcpb2#

当我错误地从protractor而不是@angular/core导入EventEmitter时,我遇到了同样的错误。
import { EventEmitter } from 'protractor';更改为import { EventEmitter } from '@angular/core';修复了该问题。

pgvzfuti

pgvzfuti3#

如果从src路径导入,则会抛出此警告
将组件import语句从

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

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

mnemlml84#

在应用中搜索导入。
您很有可能错误地导入了类似于from '@angular/compiler/foo'的内容。

odopli94

odopli945#

我发现了一个类似的问题:
./节点模块/@Angular /编译器/源代码/实用程序. js:10:24 - 31-警告:关键依赖性:require函数的使用方式使依赖项无法静态提取
我记得我使用了stringify而不是JSON. stringify,这个自动导入(使用vs代码)为:

import { stringify } from '@angular/compiler/src/util';

我删除了这个自动导入,并将代码更正为JSON.stringify。

cwdobuhd

cwdobuhd6#

只是为了补充这一点,非常相似,但它似乎进口一些东西从Angular 做它。我的是这样的:

import {error} from '@angular/compiler/src/util';

我无意中输入了throw error()而不是throw Error(),它导入了那个并触发了警告。

yhqotfr8

yhqotfr87#

我遇到了这个错误(如标题所示)和其他几个错误,因为我试图实现一个第3方库。
所以简而言之,如果你得到这些错误,试着看看你的第3方库。在我的例子中,它是一个来自Scanbotiderio的条形码扫描库。

u59ebvdq

u59ebvdq8#

从这进口发生在我身上:

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

我有一个消息界面,但自动填充导入功能默认为上面的一个。

相关问题