如何使用带有webpack的angular2应用程序中的lodash解决错误“无法找到名称'_'”

时间:2016-07-28 08:04:43

标签: typescript angular webpack lodash

以下是我使用webpack在typescript / angular2 app中导入lodash的方法:

  • $ npm install lodash --save
  • $ typings install dt~lodash --save

在webpack.config.js中:

module.exports = {
   plugins: [  
      new ProvidePlugin({
         '_' : 'lodash'

它有效。

但是我的编辑器(Sublime)和运行时的终端中仍然存在错误:找不到名称'_'

那么,我缺少什么?

在我使用lodash的.ts文件中,我试图像这样声明:

declare var _ : LoDashStatic

没有运气。

3 个答案:

答案 0 :(得分:3)

我有同样的问题,这对我有用:

1 - 这将声明lodash模块到TypeScript可以为你输入检查。

typings install lodash --save

2 - 在您的.ts文件中,您要导入lodash:

import * as _ from "lodash"

我跳它可以帮助。

答案 1 :(得分:2)

我不确定这个问题有多久,但这些问题仍然存在。我刚刚将Lodash类型定义添加到我的Angular-CLI项目中并使其工作。这是我想在Angular2中使用一些第三方库的实验的一部分。我不得不努力弄清楚它是如何工作的,所以这里就是这样。

Lodash的当前类型定义似乎存在一些问题。所以我在编译时遇到错误。我用更旧版本的lodash类型定义文件替换了类型定义文件的内容,并且它工作正常。 工作版本来自路径,

https://github.com/borisyankov/DefinitelyTyped

我用typings install dt~lodash --save

安装了lodash

添加任何类型定义文件后,它将在基本类型定义文件中获得引用,如下所示。

Type definition base file

现在,如果您错过了在tsconfig.json中引用基本文件,我们将无法在Angular2中使用lodash模块。您可以按如下方式添加它,

enter image description here

要使用lodash功能,请导入在打开类型定义文件时可以看到的模块。如果是lodash,那就是" lodash"。

在您的组件中,您可以导入类似的库,

import * as $ from 'jquery';
import * as _ from "lodash";

并使用代码中的功能

例如:

enter image description here

结果是,

enter image description here

答案 2 :(得分:0)

我发现这对我有用:

declare var _ : _.LoDashStatic;