angular - [at-loader] node_modules\@types\jasmine içinde HATA
Webpack derlemem, hiçbir paket güncellenmemesine rağmen aniden başarısız olmaya başladı. Bunun küçük bir sürüm güncellemesinden kaynaklandığını varsayıyorum, ama bunun nasıl aşılacağını bir türlü bulamıyorum. Bunu nasıl çözebileceğini bilen var mı?
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"
}
Cevap #1
Görünüşe göre @types/jasmine kütüphaneniz, tırnak işareti simgesine sahip olduğunuz için en son sürüme yükseltildi:
"@types/jasmine": "^2.2.34",
Bu hata önerdiği gibi, en son sürümde sorunlar var. Bu yüzden şimdilik package.json dosyanızda sürümü 2.5.41 olarak ayarlamayı deneyin:
"devDependencies": {
"@types/jasmine": "2.5.41"
}
Belki temiz bir kurulum için node-modules klasörünüzü silmeniz ve npm install komutunu çalıştırmanız gerekir.
Cevap #2
Eğer Angular 2 kullanmıyorsanız, lütfen TypeScript'inizi 2.1.6 veya daha üstüne güncelleyin. Bu işe yaramalı.
Bu tartışmaya göre, daha doğru bir çözüm, TypeScript'i 2.x dalının en son kararlı küçük sürümüne kadar güncel tutmaktır; şu anda bu sürüm 2.1.6 (12 Şubat 2017 itibarıyla). Bir yapı kaydında gördüğünüz hata, 2.0.10 gibi eski bir sürüm kullandığınızı gösteriyor. En son jasmine tanım dosyası, yalnızca TypeScript >=2.1.0 için mevcut olan spyOn() fonksiyonunda yeni bir sözdizimi kontrolüne sahiptir. Genel olarak, 2.0.10 sürümünde kalmak için ciddi bir sebebiniz olmamalıdır, bu yüzden lütfen güncelleyin. Ancak, güncellemeyi engelleyen bir geri uyumluluk sorunu varsa, lütfen burada sorun formunu doldurun: https://github.com/Microsoft/TypeScript/issues ve derleyici ekibini bir hatadan haberdar edin.
GÜNCELLEME: package.json dosyanızda şu gibi satırlardan kaçının: "typescript": "2.0.10", "typescript": "~2.0.0". ~ yerine ^ kısıtlamasını uygulamalısınız (küçük sürüm numaralarının güncellenmesine izin verir, sadece hata düzeltmeleri değil) örneğin "typescript": ^2.0.0".
Umarım bu yardımcı olur. Verdiğim rahatsızlıktan dolayı özür dilerim.
