2016-12-31 114 views
2

我嘗試在我的Angular2應用中使用Elasticsearch NPM Module在Angular2(AngularCLI)中找不到模塊elasticsearch

我使用導入我的服務範圍內:

import { Client, SearchResponse } from 'elasticsearch'; 

打字稿編譯器不抱怨,但ng serve輸出:如果我嘗試使用

Cannot find module 'elasticsearch' 

同樣的情況:

import { Client, SearchResponse } from '../../node_modules/elasticsearch/webpack_config/angular.js'; 
+0

你安裝的模塊或只是做了你下載一個現有的項目? –

+0

我剛剛使用'ng create'創建了一個新項目,並在package.json中添加了''elasticsearch「:」^ 12.1.3「,並運行了'npm install'。其實這也是必要的,以重現我的問題。 – nik

+0

你不能那麼做 – Milad

回答

3

安裝類型:

npm i @types/[email protected] 

另外,看看你的tsconfig.json,並確保它在那裏,以及:

舊版本打字稿的:

"types": [  
     "elasticsearch" 
    ] 

打字稿的新版本(> 2)

"typeRoots": [ 
     "node_modules/@types" 
    ] 
+0

好吧,在安裝其他模塊之前,我需要首先運行'npm i @ types/elasticsearch @ 0.0.7',但之後就可以運行。 – nik

+0

我將項目從ng2 quickstart種子切換到angular-cli框架,並從system.js轉到了webpack。我認爲對於system.js用戶來說,這個問題可以在system.js配置文件中解決?由於這個問題,我暫時放棄了在我的項目中使用elasticsearch之後,基本上已經陷入了困境。 –

1

卸載彈性搜索的所有軟件包,如果已經這樣做...使用類似命令...

 
npm uninstall elasticsearch 
npm uninstall -g elasticsearch 
npm uninstall -g --save-dev elasticsearch 
npm uninstall @types/elasticsearch 

現在使用角CLI在項目中安裝了彈性搜索包的類型定義

 
npm install @types/elasticsearch 

現在安裝彈性搜索包

 
npm install elasticsearch 
相關問題