web-dev-qa-db-fra.com

ERREUR dans [at-loader] node_modules \ @types \ jasmine

Ma construction de webpack a commencé à échouer de nulle part sans aucun paquet mis à jour. Je suppose qu'une mise à jour mineure de la version a provoqué cela, mais je ne peux pas comprendre comment le contourner. Est-ce que quelqu'un sait quoi faire?

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"
  }
18
Josh

On dirait que votre @types/jasmine la bibliothèque a été mise à niveau vers la dernière version car vous avez le symbole caret:

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

La dernière version a des problèmes comme cela bug le suggère. Essayez donc pour l'instant en définissant la version sur 2.5.41 dans votre package.json:

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

Vous devez peut-être supprimer votre node-modules dossier et exécutez npm install pour une installation propre.

40
Daniel Mora

Si vous n'utilisez pas Angular 2, mettez à jour votre TypeScript vers 2.1.6 ou supérieur, s'il vous plaît. Cela devrait vous aider.

Selon cette discussion , une solution plus correcte consiste à maintenir TypeScript à jour avec la dernière version mineure stable de la branche 2.x, Qui est 2.1.6 À partir de maintenant (12 février , 2017). L'erreur que vous avez dans un journal de build indique que vous utilisez une version 2.0.10 Obsolète. Le dernier fichier de définition jasmine a une nouvelle vérification de syntaxe dans la fonction spyOn() qui n'est disponible que pour TypeScript >=2.1.0. En règle générale, vous ne devriez avoir aucune raison sérieuse de vous en tenir à 2.0.10, Veuillez donc mettre à niveau. Cependant, s'il y a un problème de compatibilité descendante vous empêchant de mettre à niveau, vous devez remplir le formulaire de problème ici: https://github.com/Microsoft/TypeScript/issues et informer l'équipe du compilateur de un bug.

[~ # ~] upd [~ # ~] : Évitez dans vos lignes package.json comme celles-ci: "TypeScript": "2.0.10, "TypeScript": "~2.0.0". Au lieu de ~, Vous devez appliquer la restriction ^ (Permet de mettre à jour les numéros de version mineurs, pas seulement les correctifs) comme "TypeScript": ^2.0.0".

J'espère que cela pourra aider. Désolé pour le dérangement.

5
noomorph

Même avec Angular 2+, j'ai eu ce problème. Ce qui a résolu le problème pour moi, au lieu de rétrograder Jasmine, c'était la mise à jour de TypeScript.

Mes étapes ont été:

  • Changement package.json pour pointer vers une nouvelle version de TypeScript
    • "TypeScript": "~2.0.9" -> "TypeScript": "^2.0.9"
  • Courir npm install
  • Après cela, l'erreur a disparu.
2
GarouDan