パッケージが更新されず、私のwebpackビルドはどこからともなく失敗し始めました。何らかのマイナーバージョンの更新が原因であると考えられますが、その回避方法はわかりません。誰が何をすべきか知っていますか?
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"
}
キャレット記号があるため、@types/jasmine
ライブラリが最新バージョンにアップグレードされたようです。
"@types/jasmine": "^2.2.34",
bug が示唆するように、最新バージョンには問題があります。 package.jsonでバージョンを2.5.41に設定して、今のところ試してください。
"devDependencies": {
"@types/jasmine": "2.5.41"
}
おそらく、node-modules
フォルダーを削除し、npm install
を実行してクリーンインストールを行う必要があります。
Angular 2を使用していない場合は、TypeScriptを2.1.6以降に更新してください。これが役立つはずです。
この議論 によると、より正しい解決策は、TypeScriptを_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"
_制限(修正プログラムだけでなくマイナーバージョン番号の更新を許可)を適用する必要があります。
お役に立てば幸いです。ご不便おかけしてすみません。
Angular 2+でもこの問題が発生しました。Jasmineをダウングレードする代わりに問題を解決したのはTypeScriptを更新することでした。
私の手順は次のとおりです。
package.json
TypeScriptの新しいバージョンを指す"TypeScript": "~2.0.9"
-> "TypeScript": "^2.0.9"
npm install