在我的 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'
如何修复此错误?
除了安装
@types/lodash-es
模块外,现有的"lodash": "^4.17.15"
模块还需要更换为"lodash-es": "^4.17.15"
这是因为
@types/lodash-es
需要 lodash-es
而不是 lodash
。一旦你知道了,这是显而易见的,但我最初错过了它。
试试这个
npm install @types/lodash-es --save-dev
如果此后您遇到同样的问题,请检查依赖项中的 package.json
“lodash-es”:“^4.17.20”
如果没有,只需在 cmd 中编写并运行 npm install 。 这对我有用。
您可以通过 npm update 更新您的node__modules。它消除了我的案例的错误。
如果您将Formik与Webpack一起使用并遇到问题,在Webpack配置中配置resolve.extensions可能会有所帮助。以下是如何执行此操作的示例: 通过将所需的文件扩展名.js 添加到resolve.extensions,Webpack 将确保在捆绑过程中正确解析这些文件类型。如果您在用 TypeScript 编写的 React 应用程序中使用 Formik,这会特别有用。