рдирдорд╕реНрдХрд╛рд░ рд╢реНрд░реА рдорд╛рди рдЬреА!
рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ
рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ:
[at-loader] ./node_modules/protractor/built/index.d.ts:5:10 рдореЗрдВ рддреНрд░реБрдЯрд┐
TS2440: 'PluginConfig' рдХреА рд╕реНрдерд╛рдиреАрдп рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдд рдШреЛрд╖рдгрд╛ рд╡рд┐рд░реЛрдзред
[at-loader] ./node_modules/protractor/built/index.d.ts:5:24 рдореЗрдВ рддреНрд░реБрдЯрд┐
TS2440: 'ProtractorPlugin' рдХреА рд╕реНрдерд╛рдиреАрдп рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдд рдШреЛрд╖рдгрд╛ рд╡рд┐рд░реЛрдзред
10.5.0
~5.1.2
^4.2.4
any
Windows 10
const {specReporter} = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдЪрдореЗрд▓реА-рдХрд▓реНрдкрдирд╛-рд░рд┐рдкреЛрд░реНрдЯрд░');
рдПрдХреНрд╕рдкреЛрд░реНрдЯреНрд╕.рдХреЙрдиреНрдлрд┐рдЧ = {
рдСрд▓рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕рдЯрд╛рдЗрдордЖрдЙрдЯ: 11000,
рдРрдирдХ: [
'./e2e/ */ .e2e-spec.ts'
],
рдХреНрд╖рдорддрд╛рдПрдВ: {
'рдмреНрд░рд╛рдЙрдЬрд╝рд░рдирд╛рдо': 'рдХреНрд░реЛрдо'
},
рдбрд╛рдпрд░реЗрдХреНрдЯ рдХрдиреЗрдХреНрдЯ: рд╕рдЪ,
рдмреЗрд╕рдпреВрдЖрд░рдПрд▓: ' http://localhost :4200/',
рдврд╛рдВрдЪрд╛: 'рдЪрдореЗрд▓реА',
рдЪрдореЗрд▓реА рдиреЛрдбрдСрдкреНрдЯреНрд╕: {
рд╢реЛ рд░рдВрдЧ: рд╕рдЪ,
рдбрд┐рдлреЙрд▓реНрдЯрдЯрд╛рдЗрдордЖрдЙрдЯрдЗрдВрдЯрд░рд╡рд▓: 30000,
рдкреНрд░рд┐рдВрдЯ: рдлрд╝рдВрдХреНрд╢рди () {}
},
рддреИрдпрд╛рд░ рдХрд░реЗрдВ () {
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ('рдЯреАрдПрд╕-рдиреЛрдб')ред рд░рдЬрд┐рд╕реНрдЯрд░ ({
рдкреНрд░реЛрдЬреЗрдХреНрдЯ: 'e2e/tsconfig.e2e.json'
});
jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}}));
}
};
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓реЗрдЦ рдорд╛рдВрдЧрдирд╛
рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВ
рдЖрдЬ рддрдХ рдореБрдЭреЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓ рд░рд╣реА рд╣реИ (рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ 5.4.2 рдФрд░ рдХреЛрдгреАрдп 8 рдХреЗ рд╕рд╛рде)
рдкреНрд░реЛрдЯреИрдХреНрдЯрд░ 5.4.2 рдФрд░ рдПрдВрдЧреБрд▓рд░ 8 рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдБ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ
рд╣рдорд╛рд░реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╣реБрдП рдореИрдВ рдЖрдЬ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рд╣рдо AngularJS рдкрд░ рд╣реИрдВ рдФрд░ рдпрд╣ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ 5.4.1 рдФрд░ 5.4.2 рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИред рдореБрдЭреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.6.4 (3.6.x) рдкрд░ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.7.2 (3.7.x) рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реВрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#local -and-imported-type-declarations-now-conflict
рдХреГрдкрдпрд╛ рдареАрдХ рдХрд░реЗрдВ; рд╣рдореЗрдВ рдирд▓рд┐рд╢ рдХреЛрд▓реЗрд╕рд┐рдВрдЧ рдХреА рдЬрд░реВрд░рдд рд╣реИ! :)
рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореЗрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░реЛрдЯреИрдХреНрдЯрд░ 5.4.2 рдкрд░ рд╣реИ рдФрд░ рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.7 рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред
рдлрд┐рдХреНрд╕ рдХреЛ рдмреИрдХрдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ (рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ):
89fbf75d4103db2cd20fd0c1c4ca7efebc52c049
37bef24331c1012bfc2cc7d3fa259a00e69bd192
рдорд╛рд╕реНрдЯрд░ рд╕реЗ 5.4.2 . рддрдХ
5.4.2 npmjs.com рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИред
6.0.0 рдореЗрдВ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
( https://github.com/angular/protractor/blob/6.0.0/CHANGELOG.md )
рд╕реАрд╕реА: @sandersn @heathkit
#5325 . рдХрд╛ рдбреБрдкреНрд▓реАрдХреЗрдЯ
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреАрдо рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдХреЛрдгреАрдп рдЯреАрдо рдкрд░ рдирд╣реАрдВред рдореИрдВрдиреЗ рдЯреАрдо рдХреЗ рдХреБрдЫ рд╕рджрд╕реНрдпреЛрдВ рд╕реЗ рдмрд╛рдд рдХреА рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рд╡реЗ рдПрдХ рдирдпрд╛ 5.* рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред
рдЖрдЬ рдореИрдВрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 3.7.x рд╕реЗ рдШрдЯрд╛рдХрд░ 3.6.x рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж рдореИрдЯрдХреЗрд╕реА
@Sandersn рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж; рд╡рд╣ рдореЗрд░рд╛ рдЕрдЧрд▓рд╛ рдкреНрд░рд╢реНрди рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ред рд╣рдо рдкреНрд░рд╡рд╛рд╣ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореИрдВрдиреЗ 6.0.0 рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреИрдХреЗрдЬ рдореЗрдВ рдЕрднреА рддрдХ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЯреАрдо рдХрд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдпрд╣рд╛рдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░ рд╕рдХреЗ: рдХреНрдпрд╛ рд╣рдо рдХреБрдЫ рджрд┐рди, рдХреБрдЫ рдорд╣реАрдиреЗ рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВ рдорджрдж рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░рдиреЗ рдореЗрдВ рд╣реЛрд▓реНрдб-рдЕрдк "рдмрд╕" рд╣реИ :)
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ 2: рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рдмрд╛рдХреА рд╕рд┐рд╕реНрдЯрдо TS 3.7 рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП рджреЛ рдмреБрд░рд╛рдЗрдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрдо рдпрд╣ рдерд╛ рдХрд┐ рд╣рдорд╛рд░реЗ tsconfig рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо .d.ts рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдХреЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛рдП: https:// www.typescriptlang.org/docs/handbook/module-resolution.html#path -mapping
@mattcasey рдХреНрдпрд╛ рдЖрдк рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рд╡рд░реНрддрдорд╛рди рдлрд┐рдХреНрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рд╕рд╣реА рдирд┐рд░реНрдпрд╛рдд рдкрдереЛрдВ рдХреЗ рд╕рд╛рде рдмрд╕ рдПрдХ рдХреЙрдкреА рдХреА рдЧрдИ index.d.ts рдлрд╝рд╛рдЗрд▓ рдФрд░ рдлрд┐рд░ рдирдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрде рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ?
рдЕрджреНрдпрддрди рдкреНрд░рдХрд╛рд░/рдиреЛрдб рдирд┐рд░реНрднрд░рддрд╛
npm install -g @types/node@8
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкреНрд░рдХрд╛рд░/рдиреЛрдб рджреЗрд╡-рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рджреЛрдиреЛрдВ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИ
"dependencies": {
...
"@types/node": "^8.10.59",
...
},
"devDependencies": {
...
"@types/node": "^8.10.59",
...
}
рдпрджрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.7.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЖрдк "as" рдХрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
import { module as otherModuleName } from "./module"
рдпрд╛ рдЖрдк рдореЙрдбреНрдпреВрд▓ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдПрдХ рднрд┐рдиреНрди рдЪрд░ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ
рдЖрдЬ рдореИрдВрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 3.7.x рд╕реЗ рдШрдЯрд╛рдХрд░ 3.6.x рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж рдореИрдЯрдХреЗрд╕реА
рдЗрд╕рдиреЗ рдкреИрдХреЗрдЬ рдлрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ": "~ 3.6" рдбрд╛рд▓ рджрд┐рдпрд╛ред рдлрд┐рд░ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ "рдПрдирдкреАрдПрдо рдЗрдВрд╕реНрдЯреЙрд▓" рдЪрд▓рд╛рдПрдВ рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!
рд╡рд╣реА рдореБрджреНрджрд╛ рдФрд░ рдЬрдм рдореИрдВрдиреЗ 3.6.4 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред
рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХреЛ рдпрд╣рд╛рдБ, рдореИрдВ рд╣реА рдерд╛ npm uninstall -g typescript
рддрд╛рдХрд┐ рдХрд╛ рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг tsc
рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп PATH
рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рд╕рдХрддрд╛ рдерд╛ ...
@ woppa684 рдореЗрд░рд╛ рдлрд┐рдХреНрд╕ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ protractor.d.ts
(рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ test-e2e/protractor.d.ts
) рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
// Note: This stub exists to override Protractor types which are incompatible with TS 3.7 as of 5.4.2 and 6.0.0
declare module 'protractor' {
let browser: any;
let element: any;
let by: any;
let ExpectedConditions: any;
let until: any;
let Key: any;
}
рдФрд░ рдлрд┐рд░ tsconfig рдореЗрдВ:
{
...
"compilerOptions": {
...
"paths": {
"protractor": ["test-e2e/protractor.d.ts"]
}
}
}
рдпрд╣ рдореБрдЭреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЕрдм рдЯрд╛рдЗрдк-рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди https://github.com/angular/protractor/pull/5326/ рдореЗрдВ рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХрд╛ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдирд┐рд░реНрдорд╛рдг рдмрдирд╛рдирд╛ рд╣реИ ред
рд╣рдо рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреЗ рдмрдЬрд╛рдп рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВ
// package.json
"protractor": "tomyam1/protractor-ts3.7-fix"
рдореИрдВ рдХреЛрдгреАрдп рдХреЗ рд╕рд╛рде devops рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реВрдБред рдмрд╕ рдпрд╣реА рд╣реЛрдиреЗ рд▓рдЧрд╛ред рдореИрдВ рд╡рд╛рдкрд╕ рдЧрдпрд╛ рдФрд░ рдПрдХ package.json рдФрд░ package-lock.json рдХреЛ рдЙрд╕ рд╕рдордп рд╕реЗ рдкрдХрдбрд╝ рд▓рд┐рдпрд╛ рдЬрдм рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред
рдореИрдВрдиреЗ рдХреЛрдгреАрдп рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрд╣ рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреЗрд╡реЛрдкреНрд╕ рдкрд░ рдирд╣реАрдВред рдпрд╣ рдХреЗрд╡рд▓ рдмрдирд╛рдо рдирд┐рд░реНрдорд╛рдг рднрд╛рдЧ рд╣реИ рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдПрдирдкреАрдПрдо/рдПрдирдЬреА рд╕рд╛рдорд╛рди рдареАрдХ рдЪрд▓рддрд╛ рд╣реИред
рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
https://developercommunity.visualstudio.com/content/problem/855096/npm-ng-suddenly-not-working-conflict-pluginconfig.html
рдпрджрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.7.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЖрдк "as" рдХрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
import { module as otherModuleName } from "./module"
рдпрд╛ рдЖрдк рдореЙрдбреНрдпреВрд▓ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдПрдХ рднрд┐рдиреНрди рдЪрд░ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ
@anicarrr , рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рджреВрд╕рд░реЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ tsconfig.json рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
"skipLibCheck": true
рдпрджрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.7.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЖрдк "as" рдХрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
import { module as otherModuleName } from "./module"
рдпрд╛ рдЖрдк рдореЙрдбреНрдпреВрд▓ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдПрдХ рднрд┐рдиреНрди рдЪрд░ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ@anicarrr , рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рджреВрд╕рд░реЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдЬреИрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛:
export default myModule
рддреЛ рдЬрдм рдЖрдк рдЗрд╕реЗ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЬреЛ рднреА рдирд╛рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:
import whateverName from myModule
рдпрд╣ https://github.com/angular/protractor/pull/5326 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
fyi: рдЗрд╕ рдмреАрдЪ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП tsc рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк "skipLibCheck": true
рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд╛рдзрд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдирдорд╕реНрдХрд╛рд░ рд╢реНрд░реА рдорд╛рди рдЬреА!
рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ
рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ:[at-loader] ./node_modules/protractor/built/index.d.ts:5:10 рдореЗрдВ рддреНрд░реБрдЯрд┐
TS2440: 'PluginConfig' рдХреА рд╕реНрдерд╛рдиреАрдп рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдд рдШреЛрд╖рдгрд╛ рд╡рд┐рд░реЛрдзред
[at-loader] ./node_modules/protractor/built/index.d.ts:5:24 рдореЗрдВ рддреНрд░реБрдЯрд┐
TS2440: 'ProtractorPlugin' рдХреА рд╕реНрдерд╛рдиреАрдп рдШреЛрд╖рдгрд╛ рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдд рдШреЛрд╖рдгрд╛ рд╡рд┐рд░реЛрдзред
- рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг:
10.5.0
- рдЪрд╛рдВрджрд╛ рд╕рдВрд╕реНрдХрд░рдг:
~5.1.2
- рдХреЛрдгреАрдп рд╕рдВрд╕реНрдХрд░рдг:
^4.2.4
- рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдУрдВ):
any
- рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕рдВрд╕реНрдХрд░рдг
Windows 10
- рдЖрдкрдХреА рдЪрд╛рдВрджрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓
const {specReporter} = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдЪрдореЗрд▓реА-рдХрд▓реНрдкрдирд╛-рд░рд┐рдкреЛрд░реНрдЯрд░');
рдПрдХреНрд╕рдкреЛрд░реНрдЯреНрд╕.рдХреЙрдиреНрдлрд┐рдЧ = {
рдСрд▓рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕рдЯрд╛рдЗрдордЖрдЙрдЯ: 11000,
рдРрдирдХ: [
'./e2e/ */ .e2e-spec.ts'
],
рдХреНрд╖рдорддрд╛рдПрдВ: {
'рдмреНрд░рд╛рдЙрдЬрд╝рд░рдирд╛рдо': 'рдХреНрд░реЛрдо'
},
рдбрд╛рдпрд░реЗрдХреНрдЯ рдХрдиреЗрдХреНрдЯ: рд╕рдЪ,
рдмреЗрд╕рдпреВрдЖрд░рдПрд▓: ' http://localhost :4200/',
рдврд╛рдВрдЪрд╛: 'рдЪрдореЗрд▓реА',
рдЪрдореЗрд▓реА рдиреЛрдбрдСрдкреНрдЯреНрд╕: {
рд╢реЛ рд░рдВрдЧ: рд╕рдЪ,
рдбрд┐рдлреЙрд▓реНрдЯрдЯрд╛рдЗрдордЖрдЙрдЯрдЗрдВрдЯрд░рд╡рд▓: 30000,
рдкреНрд░рд┐рдВрдЯ: рдлрд╝рдВрдХреНрд╢рди () {}
},
рддреИрдпрд╛рд░ рдХрд░реЗрдВ () {
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ('рдЯреАрдПрд╕-рдиреЛрдб')ред рд░рдЬрд┐рд╕реНрдЯрд░ ({
рдкреНрд░реЛрдЬреЗрдХреНрдЯ: 'e2e/tsconfig.e2e.json'
});
jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}}));
}
};
- рдмрдЧ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо - npm рд░рди рдмрд┐рд▓реНрдб рд╡рд┐рдлрд▓
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓реЗрдЦ рдорд╛рдВрдЧрдирд╛
рдХреГрдкрдпрд╛ рдореБрдЭреЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВ
рд╣рд╛рдп рд╕рдЪрд┐рдирдмреАрдПрди,
рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдВрд╕реНрдХрд░рдг (рдЙрджреНрдзрд░рдг рдХреЗ рдмрд┐рдирд╛) рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реАрдПрд╕ рдХреЛрдб рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
"рдПрдирдкреАрдПрдо рдЗрдВрд╕реНрдЯрд╛рд▓-рдЬреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ@3.6.2 "
рдПрдХ рдмрд╛рд░ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реАрдПрд╕ рдХреЛрдб рдкрд░ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рдВрдЪреЗрдВ
"рдЯреАрдПрд╕рд╕реА-рд╡реА"
рдпрд╣ 3.6.2 рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреГрдкрдпрд╛ package.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрд╕реА рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдПрдХ рдмрд╛рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 3.6.2 рдореЗрдВ рдмрджрд▓ рджреЗрдиреЗ рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реЗ "tsc" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рддреНрд░реБрдЯрд┐ рджреВрд░ рд╣реЛ рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рдЙрдореНрдореАрдж рд╣реИ рдпреЗ рдорджрдж рдХрд░реЗрдЧрд╛ред
рд╕рд╛рджрд░,
рдЕрдореЗрдпрд╛
рдореЗрд░реЗ рдХреЛрдгреАрдп рдРрдк рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдореИрдВ рдЗрд╕реЗ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдХреЛ рд╣рдЯрд╛рдХрд░ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ рдЬреЛ рд╕реБрдЭрд╛рд╡реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд╕рдВрдж:
рдЖрдпрд╛рдд {рддрддреНрд╡} 'рдЪрд╛рдЪрд╛' рд╕реЗ
рдЖрдпрд╛рдд {рд╡рд╛рджрд╛} 'рдЪрд╛рдЪрд╛' рд╕реЗ
рдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрдВ рдореИрдВ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рджреМрдбрд╝реВрдВрдЧрд╛ред
рдореЗрд░рд╛ рдХрд╛рдо рдХрд┐рдпрд╛, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рд╕рд╛рджрд░,
рдирд┐рд╢рд┐рдд рдЬрд╝рд┐рдВрдЬрд╝реБрд╡рд╛рдбрд┐рдпрд╛
npx tsc -v
Version 3.8.3
рдирд╡реАрдирддрдо рдиреЛрдб рдФрд░ рдПрдирдкреАрдПрдоред
рдореЗрд░реА рдлрд╛рдЗрд▓
import * as mysql from "mysql2";
const config =
process.env.NODE_ENV == "prod"
? {
connectionLimit: 10,
host: "*********.rds.amazonaws.com",
user: "admin",
database: "p_" + process.env.PROJECT_ID,
password: "*********",
prefix: `p_${process.env.PROJECT_ID}_`
}
: {
connectionLimit: 10,
host: "host.docker.internal",
user: "root",
database: "i**_project",
password: "root",
prefix: ""
};
export const db = mysql.createPool(config);
export const prefix = config.prefix;
рдФрд░ рдореБрдЭреЗ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рд╣реИ
npm run start
> [email protected] start /workspaces/icod-prt
> npx tsc && node build/index.js
typings/modules/mysql2/index.d.ts:677:1 - error TS2440: Import declaration conflicts with local declaration of 'Connection'.
677 import Connection = require('~mysql2~mysql/lib/Connection');
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
typings/modules/mysql2/index.d.ts:679:1 - error TS2440: Import declaration conflicts with local declaration of 'PoolConnection'.
679 import PoolConnection = require('~mysql2~mysql/lib/PoolConnection');
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
typings/modules/mysql2/index.d.ts:680:1 - error TS2440: Import declaration conflicts with local declaration of 'Pool'.
680 import Pool = require('~mysql2~mysql/lib/Pool');
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
typings/modules/mysql2/index.d.ts:682:1 - error TS2440: Import declaration conflicts with local declaration of 'PoolCluster'.
682 import PoolCluster = require('~mysql2~mysql/lib/PoolCluster');
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
typings/modules/mysql2/index.d.ts:684:1 - error TS2440: Import declaration conflicts with local declaration of 'Query'.
684 import Query = require('~mysql2~mysql/lib/protocol/sequences/Query');
рдХрднреА-рдХрднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд┐рд╕реА рдФрд░ рдХреА рдзреВрдореНрд░рдкрд╛рди рдмрдВрджреВрдХ рдкрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреЛрд╖ рджреЗрддрд╛ рд╣реИред
.spec.ts рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдЖрдЬ рдУрдкреА рдХрд╛ рд╕рдЯреАрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдорд┐рд▓рд╛ред рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ npm uninstall protractor
рд╕реЗ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреА:
ERROR in src/app/.../...spec.ts:12:30 - error TS2307: Cannot find module 'protractor'.
12 import { EventEmitter } from 'protractor';
рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рдерд╛ рдХрд┐ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдиреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ import { EventEmitter } from '@angular/core';
рдмрдЬрд╛рдп рдЗрд╕ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдХреЛ рдмреЗрд╡рдЬрд╣ рдмрдирд╛рдпрд╛ рдерд╛
рдЕрднреА рднреА рдпрд╣ 4.0.2 рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ .. рд╣рдореНрдо
рдореЗрд░реЗ рдХреЛрдгреАрдп рдРрдк рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдореИрдВ рдЗрд╕реЗ рдкреНрд░реЛрдЯреНрд░реИрдХреНрдЯрд░ рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдХреЛ рд╣рдЯрд╛рдХрд░ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ рдЬреЛ рд╕реБрдЭрд╛рд╡реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд╕рдВрдж:
рдЖрдпрд╛рдд {рддрддреНрд╡} 'рдЪрд╛рдЪрд╛' рд╕реЗ
рдЖрдпрд╛рдд {рд╡рд╛рджрд╛} 'рдЪрд╛рдЪрд╛' рд╕реЗрдмрд╕ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрдВ рдореИрдВ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рджреМрдбрд╝реВрдВрдЧрд╛ред
рдореЗрд░рд╛ рдХрд╛рдо рдХрд┐рдпрд╛, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛редрд╕рд╛рджрд░,
рдирд┐рд╢рд┐рдд рдЬрд╝рд┐рдВрдЬрд╝реБрд╡рд╛рдбрд┐рдпрд╛
рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ VSCode рдХреА рд╕реНрд╡рдд: рдЖрдпрд╛рдд, рдХрд┐ рдЖрдпрд╛рддрд┐рдд рдерд╛ EventEmitter
рд╕реЗ Protractor
рдХреЗ рдмрдЬрд╛рдп @angular/core
ред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ tsconfig.json рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: