一个非常常见的问题。在Angular 2 + webpack项目中从lodash导入单一功能
如何从lodash导入单个函数?
我试过lodash.orderby,但我相信这应该与commonjs一起使用。我也试过lodash-es没有太大的成功。我仍然收到各种错误,如Cannot find module 'lodash-es'
或Cannot find module 'lodash/orderBy'
。
另一种可能性是使用custom builds,但我无法弄清楚如何正确导入一个函数。
运行Angular 2 RC-4,typescript 2.1.0-dev,webpack 2(beta)。
打字稿被配置以下列方式:
{
"compilerOptions": {
"target": "es5",
"module": "es6",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"moduleResolution": "node"
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
UPDATE
我目前进口下列方式的模块:
import {orderBy} from 'lodash-es';
这实际上是工作(也就是说,该应用程序正确使用orderBy),但错误仍然存在。我认为问题在于没有lodash-es的类型定义。
typings.json
{
"globalDependencies": {
"core-js": "registry:dt/core-js#0.0.0+20160602141332",
"jasmine": "registry:dt/jasmine#2.2.0+20160505161446",
"jquery": "registry:dt/jquery#1.10.0+20160417213236",
"node": "registry:dt/node#6.0.0+20160613154055",
"typeahead": "registry:dt/typeahead#0.11.1+20160317120654"
},
"dependencies": {
"lodash": "registry:npm/lodash#4.0.0+20160416211519"
}
}
UPDATE:
这是一个老问题,但以供将来参考,如果你不使用require
,你可能需要安装正确的打字信息。在这种情况下,我需要安装并声明模块lodash-es。
你是什么'typings.json'文件的内容和你如何导入排序依据:
使用然后将它导入? – tomastrajan
不要导入lodash.orderby,需要它。 – estus
@tomastrajan我用更多的信息更新了我的问题。我认为输入定义不适用于lodash-es。我包括lodash的定义,这就是你可以在typings.json中看到的。 –