【发布时间】: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