不提供名为“isEqual”的导出 |角

问题描述 投票:0回答:1
import { isEqual } from 'lodash';

onSave() {
    const isFormsEqual = isEqual(
      this.loyaltyRewardsFormFacade.currentRewardsState(),
      this.loyaltyRewardsFormFacade.transformFormData()
    );
    this.loyaltyRewardsFacade.onSave(this.loyaltyRewardsFormFacade, isFormsEqual);
  }

我的 Angular 项目中遇到错误,导致项目无法加载。

我正在使用带有 Angular 原生模块联合架构的 Nx monorepo。该项目具有微前端结构,包含两个应用程序:一个主 Shell 应用程序和一个远程应用程序。

在远程应用程序的组件之一中,我需要 Lodash 的 isEqual 方法。我安装了以下软件包:“@types/lodash”:“^4.17.13”和“lodash”:“^4.17.21”。我使用 import { isEqual } from 'lodash' 从 Lodash 导入 isEqual ;在组件中并使用 isEqual 方法。最初,它工作正常,但现在,正如您所看到的,我收到一个导致应用程序崩溃的错误,提示“未提供名为“isEqual”的导出”,即使我正确导入了它。

您对可能导致此错误的原因有任何想法吗?我曾多次遇到类似的错误,尤其是在创建新的效果和外观文件时。我最初使用它们没有问题,但在推送新的更改后,尽管正确导出和导入所有内容,我还是会收到“不提供名为的导出”错误。

请随时分享您的想法。

提前致谢!

错误:
错误语法错误:请求的模块“blob:http:// localhost:4200/e878b7c3-c148-4467-99c5-31459e1efa4c”不提供名为“isEqual”的导出(位于routes-WEHG7TSS.js:1:78930)

我尝试删除节点模块并运行 npm i

angular lodash monorepo
1个回答
0
投票

在最新版本的 Typescript 上(对我来说是

~5.5.0
)。

您必须先将

moduleResolution
属性设置为
bundler
,然后再设置为
node
,才能正确解析某些包,如
lodash
keycloak-js
等。

{
  "compileOnSave": false,
  "compilerOptions": {
    ...
    "experimentalDecorators": true,
    "moduleResolution": "bundler" /* <- changed here! */,
    ...

Stackblitz 演示

© www.soinside.com 2019 - 2024. All rights reserved.