找不到模块:错误:无法解析“lodash-es”

问题描述 投票:0回答:4

在我的 Angular 8 TypeScript 代码中,我直接导入 lodash(例如

import * as _ from 'lodash';
)。在我的
package.json
中,我有
"lodash": "^4.17.15"

我决定安装

@types/lodash-es
模块并以这种方式导入特定的 lodash 函数(例如
import { map } from 'lodash-es';
)。它更好,因为它节省了运行时空间,并且还使用标准的 Angular/TypeScript 导入机制。

但是,现在当我运行构建时,我收到此错误:

Module not found: Error: Can't resolve 'lodash-es'

如何修复此错误?

angular lodash package.json definitelytyped
4个回答
8
投票

除了安装

@types/lodash-es
模块外,现有的
"lodash": "^4.17.15"
模块还需要更换为
"lodash-es": "^4.17.15"

这是因为

@types/lodash-es
需要
lodash-es
而不是
lodash
。一旦你知道了,这是显而易见的,但我最初错过了它。


1
投票

试试这个

npm install @types/lodash-es --save-dev

如果此后您遇到同样的问题,请检查依赖项中的 package.json

“lodash-es”:“^4.17.20”

如果没有,只需在 cmd 中编写并运行 npm install 。 这对我有用。


0
投票

您可以通过 npm update 更新您的node__modules。它消除了我的案例的错误。


0
投票

如果您将FormikWebpack一起使用并遇到问题,在Webpack配置中配置resolve.extensions可能会有所帮助。以下是如何执行此操作的示例: 通过将所需的文件扩展名.js 添加到resolve.extensions,Webpack 将确保在捆绑过程中正确解析这些文件类型。如果您在用 TypeScript 编写的 React 应用程序中使用 Formik,这会特别有用。

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