3

Я модернизирую, чтобы использовать TypScript 2.0 с помощью Protractor 4.0.5. Я обновляю проект из машинописного текста 1.8 и транспортира 3.8. Я прийти через кучу проблем, которые я разделяю здесь:Протранслятор с идентификатором дубликата идентификатора Typcript 2.0.0

Мой package.json является:

{ 
"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" 
} 

Тогда мой пакет JSON является:

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

Когда я пытаюсь запустить транспортир тесты с этой настройкой, я получаю кучу таких ошибок:

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) 

Как решить эту проблему, так как я bel ive все настроено правильно. Я использую Protractor 4.0.5, который должен работать с машинописным текстом 2.0.

+0

Вы можете добавить минимальный '* .ts' файла, который вызывает проблема? Я ничего не знаю о Protractor, но это похоже на проблему с определением типа, поэтому я могу попытаться помочь. –

+0

@HuyNguyen Ok. Я добавлю пример репозитория позже на сегодня. –

ответ

0

Пожалуйста, зарегистрируйтесь на protractor. Он не должен размещать тиски selenium-webdriver в своем пакете.

В настоящем время, попробуйте этот безобразный хак, чтобы увидеть, если это исправить эту проблему:

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

транспортира удалены заявления типа в версии 5.x версии, так что вы можете просто обновить версию транспортира вас» повторное использование, и проблема должна исчезнуть.

Если у вас есть/хотите, чтобы остаться на версии 4.0.5, вы всегда можете удалить типы WebDriver, запустив:

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

Попробуйте использовать что-то вроде этого. Я изменил typeRoots и 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 } 
} 

Я создал шаблон для настройки транспортира с машинописью 2: https://github.com/suvroc/protractor-typescript-template

Это может быть полезно для вас

Смежные вопросы