Angular 导入非typescript npm模块的最佳解决方案

Angular 导入非typescript npm模块的最佳解决方案,angular,systemjs,typescript1.6,Angular,Systemjs,Typescript1.6,对于使用traceur和SystemJS的ES6,此表单是正确的: import _ from 'lodash'; 对于Typescript来说,这是不够的-我得到错误错误TS2307:找不到模块'lodash',因此,我安装'lodash.d.ts': /// <reference path="lodash/lodash.d.ts" /> import _ from 'lodash'; 我得到:Uncaught(承诺中)错误:require不是浏览器中的函数 最后: impor

对于使用traceur和SystemJS的ES6,此表单是正确的:

import _ from 'lodash';
对于Typescript来说,这是不够的-我得到错误
错误TS2307:找不到模块'lodash'
,因此,我安装'lodash.d.ts':

/// <reference path="lodash/lodash.d.ts" />
import _ from 'lodash';
我得到:
Uncaught(承诺中)错误:require不是浏览器中的函数

最后:

import _ = require('lodash');
它是有效的,但它是“旧形式”,不适合ES6

对于非类型脚本模块,是否有一种单一、正确的方法来使用ES6样式的类型脚本导入


(Typescript 1.6.2)

尝试从“lodash”中导入*as

如果您将lodash作为节点模块导入,则可能需要按照 声明变量:任何

如果您想从“lodash”导入*as uu',则通过类型脚本定义管理器(tsd)导入loadash。在终端中,按以下步骤操作:


tsd安装lodash--save

我尝试过:“导入*作为uu来自”。/../node_modules/lodash/dist/lodash';”和“导入*作为uu来自'lodash';”但仍然得到找不到模块的错误。@brando您解决了这个问题吗?我也遇到了同样的问题。@jwaern不幸的是,我还没有解决这个问题。问题是,虽然可以将lodash分解为模块,但每个模块都没有typescript定义文件,因此无法从导入语句中引用它。希望lodash会更新定义,因为我添加了angular2标记,因为这种方法对angular2也是通用的
import _ = require('lodash');