一个非常常见的问题。
如何从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)。
Typescript按以下方式配置:
{
"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"
]
}
更新
我目前正以下列方式导入模块:
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"
}
}
更新:
这是一个老问题,但为了将来参考,如果您不使用require
,则可能需要安装正确的输入信息。在这种特殊情况下,我需要安装并声明模块lodash-es。
答案 0 :(得分:1)
安装所需的功能:
npm install --save lodash.countby @types/lodash.countby
然后使用以下方法导入:
const countBy = require('lodash.countBy');