Après avoir mis à jour ma Angular de 5 à 7, je recevais beaucoup de vulnérabilités, pour la corriger - j'ai exécuté toutes les commandes suggérées dans "l'audit npm" et toutes les les vulnérabilités ont été corrigées.
Mais maintenant, quand je cours:
ng serve
Je reçois cette erreur:
ERREUR dans node_modules/protractor/built/ptor.d.ts (33,17): erreur TS2307: Impossible de trouver le module './Selenium-webdriver/lib/input'.
Si j'entre dans les sources d'erreurs, je peux voir la ligne de problème:
// node_modules/protractor/built/ptor.d.ts
Key: import("./Selenium-webdriver/lib/input").IKey;
et si je change la ligne en:
Key: import("../../Selenium-webdriver/lib/input").IKey;
c'est corriger l'erreur.
Je suppose que c'est un problème de versions, mais il reste maintenant à savoir quelles sont les bonnes versions.
Voici mon fichier package.json:
{
"name": "test",
"version": "1.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular-devkit/core": "7.3.6",
"@angular/animations": "7.2.11",
"@angular/common": "7.2.11",
"@angular/compiler": "7.2.11",
"@angular/core": "7.2.11",
"@angular/forms": "7.2.11",
"@angular/http": "7.2.11",
"@angular/platform-browser": "7.2.11",
"@angular/platform-browser-dynamic": "7.2.11",
"@angular/router": "7.2.11",
"core-js": "^2.4.1",
"rxjs": "^6.4.0",
"Selenium-webdriver": "^4.0.0-alpha.1",
"tslib": "^1.9.0",
"zone.js": "^0.8.29"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.13.7",
"@angular/cli": "7.3.6",
"@angular/compiler-cli": "7.2.11",
"@angular/language-service": "7.2.11",
"@types/jasmine": "~2.5.53",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "^4.0.1",
"jasmine-core": "~2.6.2",
"jasmine-spec-reporter": "~4.1.0",
"karma": "^4.0.1",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "^6.0.0",
"ts-node": "~3.2.0",
"tslint": "~5.7.0",
"TypeScript": "3.2.4"
},
"description": "This project was generated with [Angular CLI]
(https://github.com/angular/angular-cli) version 1.6.3.",
"main": "/",
"repository": {
"type": "git",
"url": "/"
},
"keywords": [
"/"
],
"author": "/"
}
Des idées pourquoi?
Pour résoudre ce problème, j'ai dû exécuter cette commande:
npm install protractor @ latest --save
Il semble que dans la version 6.0.0, il y ait une sorte de bogue. Cette commande m'a en fait installé "rapporteur": "^ 5.4.2"
Si cela se produit soudainement après avoir enregistré votre code et que vous utilisez code Visual Studio: recherchez rapporteur et envisagez de vérifier les fichiers TypeScript créés pour les importations inutilisées.
Vous pouvez les supprimer à l'aide de alt+shift+o
Enregistrez vos fichiers et exécutez ng serve
, Cela devrait résoudre votre problème
J'ai la même erreur. Cela n'est arrivé que parce que j'ai ajouté la ligne suivante à l'un de mes fichiers controller.ts:
import { element } from 'protractor';
Après avoir supprimé cette ligne, le problème a été résolu.
Pouvez-vous essayer ces deux commandes dans le terminal pour vous assurer que tous les packages sont installés:
npm i Selenium-webdriver --save
et npm i
qui est également identique à
npm install Selenium-webdriver --save
et npm install
Exécutez la commande suivante dans le dossier racine de l'application
npm i
ng serve
Il semble que le problème soit avec le package avec @types:
https://github.com/angular/protractor/issues/5192
Essayez par exemple d'utiliser la version précédente: @ types/Selenium-webdriver @ 2.53.33