2017-02-11 180 views
18

我的webpack構建開始失敗,沒有更新包。我假設一些小的版本更新導致了這一點,但無法弄清楚如何繞過它。有誰知道該怎麼辦?錯誤[at-loader] node_modules @types jasmine

ERROR in [at-loader] node_modules\@types\jasmine\index.d.ts:39:52 
    TS1005: '=' expected. 
ERROR in [at-loader] node_modules\@types\jasmine\index.d.ts:39:38 
    TS2371: A parameter initializer is only allowed in a function or constructor implementation. 
ERROR in [at-loader] node_modules\@types\jasmine\index.d.ts:39:46 
    TS2304: Cannot find name 'keyof'. 

的package.json

"dependencies": { 
    "@angular/common": "2.4.7", 
    "@angular/compiler": "~2.4.4", 
    "@angular/core": "2.4.7", 
    "@angular/forms": "2.4.7", 
    "@angular/http": "~2.4.4", 
    "@angular/material": "^2.0.0-beta.1", 
    "@angular/platform-browser": "~2.4.4", 
    "@angular/platform-browser-dynamic": "~2.4.4", 
    "@angular/platform-server": "~2.4.4", 
    "@angular/router": "~3.4.1", 
    "@angularclass/conventions-loader": "^1.0.2", 
    "@angularclass/hmr": "~1.2.2", 
    "@angularclass/hmr-loader": "~3.0.2", 
    "@vaadin/angular2-polymer": "^1.0.0", 
    "animate.css": "^3.5.2", 
    "assets-webpack-plugin": "^3.4.0", 
    "bootstrap-sass": "^3.3.7", 
    "bootstrap-select": "^1.12.1", 
    "bootstrap-tour": "^0.11.0", 
    "core-js": "^2.4.1", 
    "font-awesome": "^4.7.0", 
    "http-server": "^0.9.0", 
    "icheck": "^1.0.2", 
    "ie-shim": "^0.1.0", 
    "jasmine-core": "^2.5.2", 
    "metismenu": "2.0.2", 
    "nestable": "^0.2.0", 
    "ng2-modal": "0.0.24", 
    "ng2-tag-input": "~0.8.4", 
    "pace": "0.0.4", 
    "pace-progress": "^1.0.2", 
    "primeng": "^1.1.4", 
    "reflect-metadata": "^0.1.9", 
    "rxjs": "~5.1.0", 
    "summernote": "^0.8.2", 
    "zone.js": "0.7.4", 
    "ag-grid": "~8.0.1", 
    "ag-grid-enterprise": "~8.0.1", 
    "ag-grid-ng2": "~8.0.0" 
    }, 
    "devDependencies": { 
    "@angular/compiler-cli": "~2.4.1", 
    "@types/hammerjs": "^2.0.33", 
    "@types/jasmine": "^2.2.34", 
    "@types/node": "^6.0.38", 
    "@types/selenium-webdriver": "2.53.38", 
    "@types/source-map": "^0.5.0", 
    "@types/uglify-js": "^2.0.27", 
    "@types/webpack": "^2.0.0", 
    "angular-router-loader": "^0.4.0", 
    "angular2-template-loader": "^0.6.0", 
    "assets-webpack-plugin": "^3.4.0", 
    "awesome-typescript-loader": "~3.0.4-rc.2", 
    "codelyzer": "~2.0.0-beta.4", 
    "copy-webpack-plugin": "^4.0.0", 
    "css-loader": "^0.26.0", 
    "exports-loader": "^0.6.3", 
    "expose-loader": "^0.7.1", 
    "extract-text-webpack-plugin": "^2.0.0-beta.4", 
    "file-loader": "^0.9.0", 
    "gh-pages": "^0.12.0", 
    "html-webpack-plugin": "^2.21.0", 
    "imports-loader": "^0.7.0", 
    "istanbul-instrumenter-loader": "1.2.0", 
    "jasmine-core": "^2.5.2", 
    "json-loader": "^0.5.4", 
    "karma": "^1.2.0", 
    "karma-chrome-launcher": "^2.0.0", 
    "karma-coverage": "^1.1.1", 
    "karma-jasmine": "^1.0.2", 
    "karma-mocha-reporter": "^2.0.0", 
    "karma-remap-coverage": "^0.1.4", 
    "karma-sourcemap-loader": "^0.3.7", 
    "karma-webpack": "1.8.1", 
    "ngc-webpack": "^1.0.2", 
    "node-sass": "^4.1.1", 
    "npm-run-all": "^4.0.0", 
    "parse5": "^3.0.1", 
    "protractor": "^4.0.10", 
    "raw-loader": "0.5.1", 
    "rimraf": "~2.5.4", 
    "sass-loader": "^4.1.1", 
    "script-ext-html-webpack-plugin": "^1.3.2", 
    "source-map-loader": "^0.1.5", 
    "string-replace-loader": "1.0.5", 
    "style-loader": "^0.13.1", 
    "to-string-loader": "^1.1.4", 
    "ts-helpers": "1.1.2", 
    "ts-node": "^2.0.0", 
    "tslint": "4.2.0", 
    "tslint-loader": "^3.3.0", 
    "typedoc": "^0.5.3", 
    "typescript": "2.0.10", 
    "url-loader": "^0.5.7", 
    "v8-lazy-parse-webpack-plugin": "^0.3.0", 
    "webpack": "2.2.1", 
    "webpack-dev-middleware": "^1.10.0", 
    "webpack-dev-server": "2.3.0", 
    "webpack-dll-bundles-plugin": "^1.0.0-beta.5", 
    "webpack-md5-hash": "^0.0.5", 
    "webpack-merge": "~2.6.1" 
    } 
+0

你好,你設法解決這個問題。我有同樣的問題 – Arianule

回答

39

看起來你@types/jasmine庫升級到最新版本,因爲你有插入符號符號:

"@types/jasmine": "^2.2.34", 

最新版本是有問題的,因爲這建議使用bug。因此,嘗試現在在你的package.json版本設置爲41年5月2日:

"devDependencies": { 
    "@types/jasmine": "2.5.41" 
} 

也許你必須刪除您node-modules文件夾和一個乾淨的安裝運行npm install

+0

這應該是可以接受的答案!:) – www

+1

謝謝!我猜想使用^是一個冒險的想法,看看這似乎發生的頻率。 – Josh

5

如果您不使用Angular 2,請將您的TypeScript更新至2.1.6或更高版本。這應該有所幫助。

根據this discussion,更正確的解決辦法是保持打字稿更新爲2.x分支,它是2.1.6截至目前的最新穩定次要版本(2017年2月12日)。您在構建日誌中顯示的錯誤表明您使用的是過時的2.0.10版本。最新的jasmine定義文件在spyOn()函數中具有新的語法檢查功能,該功能僅適用於TypeScript >=2.1.0。一般來說,你應該沒有嚴格的理由堅持2.0.10,所以請升級。但是,如果存在向後兼容性問題而無法升級,則應在此處填寫問題表單:https://github.com/Microsoft/TypeScript/issues,並使編譯器團隊知道錯誤。

UPD:避免在您的package.json行像這些:"typescript": "2.0.10,"typescript": "~2.0.0"。代替~您應該應用^限制(允許更新次要版本號,不僅是修補程序),如"typescript": ^2.0.0"

希望有所幫助。抱歉給你帶來不便。

+0

如何升級?這是我昨天的第一個想法,我搜索瞭如何更新它並運行npm命令,但是當我運行webpack時,它仍然表示我正在使用舊版本。 – Josh

+0

@Josh,我看到在你的'package.json'中有一行'typescript「:」2.0.10「'。你能否將它更新爲'「typescript」:「^ 2.0.10」'並運行'npm update'?它對你的情況有幫助嗎?提前致謝。 – noomorph

+0

這不是一個適當的建議。 Angular 2.x不*支持TS 2.1.X. Angular 4.x將添加該支持。如果升級到Typescript 2.1.X,那麼您可能會冒險與AoT等問題。 – sofly

2

即使有Angular 2+,我也有這個問題。什麼解決了我的問題,而不是降級茉莉花更新Typescript。

我的步驟是:

  • 變化package.json指向打字稿
    • "typescript": "~2.0.9"的新版本 - >"typescript": "^2.0.9"
  • 運行npm install
  • 後此錯誤不見了。
+1

感謝它爲我工作..:D –

相關問題