2017-07-29 83 views
0

我有一個應用程序寫在ionic2,我正在使用lodash。用一個簡單的npm install lodash在命令行上和import * as _ from 'lodash',我可以通過_訪問lodash沒有問題無法在angular2項目中導入lodash

我已經開始在angular2 cli一個新的應用程序,這是什麼離子是建立在,我一直試圖做的一樣。我在命令行運行了npm install lodash,並且運行了import * as _ from 'lodash',但是一旦我嘗試編譯應用程序,我就會得到ERROR in {DIRECTORY_PATH}/src/app/otherlists/otherlists.component.ts (2,20): Cannot find module 'lodash'.,我似乎無法使其工作。我甚至複製了文件夾從node_modules和它沒有什麼不同..

我錯過了什麼?

EDIT,

爲了證明這一點,我從零開始創建了一個全新的應用程序。 ng new parser 這創建了一個新的角度項目。下一個命令是 npm install --save lodash和我導入庫到我的項目與import * as _ from 'lodash'; 有一次,我試着和ng serve運行它,我得到以下錯誤:

ERROR in C:/dev/ionic/parser/src/app/mainpage/mainpage.component.ts (2,20): Cannot find module 'lodash'.

如果我跑npm install --save-dev @types/lodash我得到的錯誤一長串開始

ERROR in C:/dev/ionic/parser/node_modules/@types/lodash/index.d.ts (8604,32): ',' expected. 

ERROR in C:/dev/ionic/parser/node_modules/@types/lodash/index.d.ts (8607,14): ']' expected. 

ERROR in C:/dev/ionic/parser/node_modules/@types/lodash/index.d.ts (8607,15): ';' expected. 

ERROR in C:/dev/ionic/parser/node_modules/@types/lodash/index.d.ts (8610,26): ',' expected. 

ERROR in C:/dev/ionic/parser/node_modules/@types/lodash/index.d.ts (8610,42): '(' expected. 

ERROR in C:/dev/ionic/parser/node_modules/@types/lodash/index.d.ts (8610,61): ',' expected. 

ERROR in C:/dev/ionic/parser/node_modules/@types/lodash/index.d.ts (8610,66): ')' expected. 

ERROR in C:/dev/ionic/parser/node_modules/@types/lodash/index.d.ts (8612,15): ';' expected. 

ERROR in C:/dev/ionic/parser/node_modules/@types/lodash/index.d.ts (8612,25): Declaration or statement expected. 

留給後人,這是我package.json

{ 
    "name": "parser", 
    "version": "0.0.0", 
    "license": "MIT", 
    "angular-cli": {}, 
    "scripts": { 
    "ng": "ng", 
    "start": "ng serve", 
    "test": "ng test", 
    "pree2e": "webdriver-manager update --standalone false --gecko false", 
    "e2e": "protractor" 
    }, 
    "private": true, 
    "dependencies": { 
    "@angular/common": "^2.3.1", 
    "@angular/compiler": "^2.3.1", 
    "@angular/core": "^2.3.1", 
    "@angular/forms": "^2.3.1", 
    "@angular/http": "^2.3.1", 
    "@angular/platform-browser": "^2.3.1", 
    "@angular/platform-browser-dynamic": "^2.3.1", 
    "@angular/router": "^3.3.1", 
    "core-js": "^2.4.1", 
    "lodash": "^4.17.4", 
    "rxjs": "^5.0.1", 
    "ts-helpers": "^1.1.1", 
    "zone.js": "^0.7.2" 
    }, 
    "devDependencies": { 
    "@angular/compiler-cli": "^2.3.1", 
    "@types/jasmine": "2.5.38", 
    "@types/lodash": "^4.14.71", 
    "@types/node": "^6.0.42", 
    "angular-cli": "1.0.0-beta.28.3", 
    "codelyzer": "~2.0.0-beta.1", 
    "jasmine-core": "2.5.2", 
    "jasmine-spec-reporter": "2.5.0", 
    "karma": "1.2.0", 
    "karma-chrome-launcher": "^2.0.0", 
    "karma-cli": "^1.0.1", 
    "karma-jasmine": "^1.0.2", 
    "karma-remap-istanbul": "^0.2.1", 
    "protractor": "~4.0.13", 
    "ts-node": "1.2.1", 
    "tslint": "^4.3.0", 
    "typescript": "~2.0.3" 
    } 
} 
+0

npm安裝lodash只安裝它,認爲它需要依賴於typecript編譯器導入它,試試'npm install -S lodash' – T4rk1n

+0

已經嘗試過,沒有區別 –

+0

看看這個[link](https ://rahulrsingh09.github.io/AngularConcepts/#/faq)它有如何導入第三部分JS有或沒有typings的問題 –

回答

2

您需要同時安裝包的分型:

npm install --save lodashnpm install --save-dev @types/lodash

然後,您就可以訪問該類型使用正常的方式import * as _ from 'lodash'

This github repository顯示了使用Angular 4和Angular CLI 1.3的例子。

+0

我試過了,它仍然給'typings'安裝帶來更多的錯誤。如果我刪除了'typings',我應該可以訪問lodash,但我不能。就像我坐着,它在我的離子項目上工作,這本質上是相同的 –

+0

我甚至刪除並重新安裝了節點模塊,但沒有任何區別 –

+0

用你試過的東西和相應的錯誤信息更新你的問題 –