一個非常常見的問題。在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中看到的。 –