2017-02-11 5 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 предлагает. Так что попробуйте сейчас, установив версию на 2.5.41 в вашем package.json:

"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 как сейчас (Feb 12, 2017). Ошибка, возникшая в журнале сборки, указывает, что вы используете устаревшую версию 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

Как мне его обновить? Это была моя первая мысль вчера, и я googled, как обновить ее и запустить команды npm, но когда я запустил webpack, все еще сказал, что использую более старую версию. – Josh

+0

@ Josh, я вижу, что в вашем 'package.json' есть строка' 'машинопись": "2.0.10" '. Не могли бы вы обновить его до '' typescript ":"^2.0.10 "' и запустить 'npm update'? Помогает ли это в вашем случае? Заранее спасибо. – noomorph

+0

Это не правильное предложение. Угловое 2.x does * not * поддерживает TS 2.1.X. Angular 4.x добавит эту поддержку. Если вы обновляетесь до Typcript 2.1.X, тогда у вас могут возникнуть проблемы с AoT. – sofly

2

Даже с Угловым 2+ у меня была эта проблема. То, что решило проблему для меня, вместо того, чтобы понизить Jasmine, обновляло TypScript.

Мои шаги были:

  • Изменение package.json, чтобы указать на новую версию машинописи
    • "typescript": "~2.0.9" ->"typescript": "^2.0.9"
  • Run npm install
  • После этого ошибка исчезла ,
+1

спасибо, что это сработало для меня ..: D –