【问题标题】:"Cannot find module 'lodash'" when using import *使用导入时“找不到模块 'lodash'”*
【发布时间】:2017-08-24 18:21:44
【问题描述】:

我正在运行最新版本的 angular2 cli 1.0.0-rc.4,但我的一个库出现问题。

当我尝试使用

导入 lodash 库(或任何库)时

import * as _ from 'lodash';

编译时会报如下错误:

ERROR in C:/tfsrepos/Nexus/Nexus/my-app/src/app/app.component.ts (2,20): Cannot find module 'lodash
.)

如果我尝试使用该行导入

import 'lodash';

然后它构建得很好。但是,现在我不能使用 lodash,因为我还没有将它安装在任何命名空间中。下面一行

_.fill(array, 'a');

产生错误

Cannot find name '_'.

这里有什么问题?在我开始尝试使用 angular cli 构建之前,我的代码运行良好。

此线程中提到的解决方案都没有:Importing lodash into angular2 + typescript application 对我有用。

【问题讨论】:

  • 我以前见过,但是当运行 npm install --save @types/lodas 时,我得到了一百多个错误。 C:/tfsrepos/Nexus/Nexus/my-app/node_modules/@types/lodash/index.d.ts (11502,21): ']' 中的错误。) C:/tfsrepos/Nexus/Nexus/my -app/node_modules/@types/lodash/index.d.ts (11502,22): ';'预期。)C:/tfsrepos/Nexus/Nexus/my-app/node_modules/@types/lodash/index.d.ts (11502,23):预期声明或声明。)C:/tfsrepos/Nexus/Nexus/ my-app/node_modules/@types/lodash/index.d.ts (11502,33): ']' 预期。) ...
  • 我的同事已经找到了解决这个问题的方法。我很惊讶以前没有人在网上提到过它。我猜lodash不是很受欢迎。问题是由于 angular cli 使用的 typescript 版本低于 lodash Typings 包的构建版本。解决方案是强制使用旧版本的类型。在 packages.json 中的 devDependencies 部分下,包含 @types/lodash": "ts2.0"。通过 npm 删除并重新安装 lodash 类型。这样就解决了问题。

标签: angularjs typescript


【解决方案1】:

尝试在 from 之前直接使用 _。

import _ from 'lodash';

【讨论】:

  • 没有变化。仍然找不到“lodash”
【解决方案2】:

使用:
npm i --save-dev @types/lodash

你可以在你的文件中导入:

      import * as _ from 'lodash';

【讨论】:

    猜你喜欢
    • 2018-09-10
    • 2016-10-24
    • 2018-07-15
    • 1970-01-01
    • 2022-11-11
    • 2023-04-02
    • 2019-09-25
    • 1970-01-01
    相关资源
    最近更新 更多