3

Je suis en train d'effectuer une mise à niveau pour utiliser Typescript 2.0 avec Protractor 4.0.5. Je suis en train d'améliorer un projet de type 1.8 et de rapporteur 3.8. Je suis venu accross un tas de problèmes, que je partage ici:Protractor avec numéro d'identification de doublon de Typescript 2.0.0

Mon package.json est:

{ 
"dependencies": { 
"core-js": "2.2.2", 
"rxjs": "5.0.0-beta.6", 
"web-request": "^1.0.3", 
"zone.js": "0.6.12" 
}, 
"devDependencies": { 
"@types/jasmine": "^2.5.35", 
"@types/node": "^6.0.45", 
"@types/protractor": "^1.5.20", 
"@types/selenium-webdriver": "^2.53.33", 
"es6-promise": "3.1.2", 
"es6-promise-loader": "1.0.1", 
"es6-shim": "0.35.0", 
"es7-reflect-metadata": "1.6.0", 
"exports-loader": "0.6.3", 
"imports-loader": "0.6.5", 
"jasmine-reporters": "^2.2.0", 
"json-loader": "0.5.4", 
"mkdirp": "^0.5.1", 
"phantomjs-polyfill": "0.0.2", 
"phantomjs-prebuilt": "2.1.7", 
"pix-diff": "^1.0.14", 
"protractor": "4.0.5", 
"protractor-jasmine2-html-reporter": "0.0.6", 
"protractor-jasmine2-screenshot-reporter": "^0.3.2", 
"raw-loader": "0.5.1", 
"rimraf": "2.5.2", 
"ts-helpers": "1.1.1", 
"ts-node": "0.7.1", 
"tslint": "3.7.4", 
"tslint-loader": "2.1.3", 
"typedoc": "0.4.3", 
"typescript": "^2.0.0-beta", 
"underscore": "^1.8.3" 
} 

Ensuite, mon paquet JSON est:

"compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "sourceMap": true, 
    "noEmitHelpers": true, 
    "lib": ["es6", "dom"], 
    "types":[ 
    ] 
    }, 
    "exclude": [ 
    "node_modules", 
    "typings" 
    ], 
    "filesGlob": [ 
    "./src/**/*.ts", 
    "!./node_modules/**/*.ts" 
    ], 
    "awesomeTypescriptLoaderOptions": { 
    "resolveGlobs": true, 
    "forkChecker": true, 
    "compiler": "node_modules/typescript" 
    }, 
    "compileOnSave": false, 
    "buildOnSave": false, 
    "atom": { "rewriteTsconfig": false } 
} 

Lorsque je tente d'exécuter protractor tests avec cette configuration, je reçois un tas d'erreurs comme ceci:

node_modules\@types\selenium-webdriver\index.d.ts (12,11): Duplicate identifier 'Driver'. (2300) 
node_modules\@types\selenium-webdriver\index.d.ts (46,11): Duplicate identifier 'Options'. (2300) 
node_modules\@types\selenium-webdriver\index.d.ts (310,11): Duplicate identifier 'ServiceBuilder'. (2300) 
node_modules\protractor\typings\globals\selenium-webdriver\index.d.ts (12,11): Duplicate identifier 'Driver'. (2300) 
node_modules\protractor\typings\globals\selenium-webdriver\index.d.ts (46,11): Duplicate identifier 'Options'. (2300) 
node_modules\protractor\typings\globals\selenium-webdriver\index.d.ts (310,11): Duplicate identifier 'ServiceBuilder'. (2300) 

Comment résoudre ce problème, puisque je bel ive tout est configuré correctement. J'utilise Protractor 4.0.5 qui devrait fonctionner avec le typecript 2.0.

+0

Pouvez-vous ajouter un minimum '* .ts' fichier qui provoque le problème? Je ne sais rien à propos de Protractor mais cela semble être un problème avec la définition du type, donc je peux essayer d'aider. –

+0

@HuyNguyen Ok. Je vais ajouter un exemple de dépôt plus tard aujourd'hui. –

Répondre

0

Veuillez ouvrir un problème au protractor. Il ne doit pas déployer les typages de selenium-webdriver dans son package.

Pour l'instant, essayez ce hack laid pour voir si elle remédier au problème:

// tsconfig.json 
{ 
    "exclude": [ 
    "node_modules/protractor/typings/global/selenium-webdriver" 
    ] 
} 
2

Protractor supprimé les déclarations de type dans les versions 5.x de version, de sorte que vous pouvez simplement mettre à jour la version de Protractor vous » re en utilisant et le problème devrait disparaître.

Si vous avez/voulez rester sur la version 4.0.5, vous pouvez toujours désinstaller les types de WebDriver, en exécutant:

npm uninstall --save-dev @types/selenium-webdriver 
0

Essayez d'utiliser quelque chose comme ça. Je typeRoots et modifié exclude

{ 
"compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "sourceMap": true, 
    "noEmitHelpers": true, 
    "lib": ["es6", "dom"], 
    "types":[ 
    ], 
    "typeRoots": [ 
     "node_modules/@types" 
    ] 
    }, 
    "exclude": [ 
    "node_modules", 
    "node_modules/protractor/node_modules" 
    ], 
    "filesGlob": [ 
    "./src/**/*.ts", 
    "!./node_modules/**/*.ts" 
    ], 
    "awesomeTypescriptLoaderOptions": { 
    "resolveGlobs": true, 
    "forkChecker": true, 
    "compiler": "node_modules/typescript" 
    }, 
    "compileOnSave": false, 
    "buildOnSave": false, 
    "atom": { "rewriteTsconfig": false } 
} 

J'ai créé un modèle pour la configuration avec tapuscrit 2 Protractor: https://github.com/suvroc/protractor-typescript-template

Il peut être utile pour vous