ΠΡΠΈΠ²Π΅Ρ ΡΡΡ!
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅
Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
ΠΠ¨ΠΠΠΠ Π² [Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅] ./node_modules/protractor/built/index.d.ts:5:10
TS2440: ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΠ΅Ρ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ PluginConfig.
ΠΠ¨ΠΠΠΠ Π² [Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅] ./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} = ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ('ΠΆΠ°ΡΠΌΠΈΠ½-ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°-ΡΠ΅ΠΏΠΎΡΡΠ΅Ρ');
export.config = {
allScriptsTimeout: 11000,
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ: [
'./e2e/ * / .e2e-spec.ts'
],
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ: {
'browserName': 'Ρ
ΡΠΎΠΌ'
},
directConnect: ΠΏΡΠ°Π²Π΄Π°,
baseUrl: ' http: // localhost : 4200 /',
ΠΊΠ°ΡΠΊΠ°Ρ: 'ΠΆΠ°ΡΠΌΠΈΠ½',
jasmineNodeOpts: {
showColors: ΠΏΡΠ°Π²Π΄Π°,
defaultTimeoutInterval: 30000,
print: function () {}
},
onPrepare () {
require ('ts-node'). register ({
ΠΏΡΠΎΠ΅ΠΊΡ: 'e2e / tsconfig.e2e.json'
});
jasmine.getEnv (). addReporter (Π½ΠΎΠ²ΡΠΉ SpecReporter ({spec: {displayStacktrace: true}}));
}
};
ΠΠ°ΠΏΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅ ΠΌΠ½Π΅ ΡΠ΅ΡΠΈΡΡ
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° (Ρ Protractor 5.4.2 ΠΈ Angular 8)
Π’Π° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ Ρ Protractor 5.4.2 ΠΈ Angular 8
Π― ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΡΡΠΈΠΌ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π½Π°ΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Typescript. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ AngularJS, ΠΈ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΊ Π΄Π»Ρ Protractor 5.4.1, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ 5.4.2. Π― Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π² Typescript 3.6.4 (3.6.x), Π½ΠΎ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π² Typescript 3.7.2 (3.7.x). Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΡΠΈΠΌ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#local -and-import-type-Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΈ-ΡΠ΅ΠΏΠ΅ΡΡ-ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° ΠΈΡΠΏΡΠ°Π²ΡΡΠ΅; Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½ΡΠ»Π΅Π²ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅! :)
ΠΠ΄Π΅ΡΡ ΡΠ° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Protractor 5.4.2, ΠΈ ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° TypeScript 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)
CC: @sandersn @heathkit
ΠΡΠ±Π»ΠΈΠΊΠ°Ρ β 5325
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ: Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠΎΡΠ½ΠΈΡΡ, ΡΡΠΎ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Typescript, Π° Π½Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Angular. Π― ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠΈΠ²Π°Π» Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ»Π΅Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ 5. *, Π½ΠΎ Ρ ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΠΏΠΎΠ½ΠΈΠ·ΠΈΠ» Π²Π΅ΡΡΠΈΡ ΠΌΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Ρ 3.7.x Π΄ΠΎ 3.6.x., ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΠΡΡΡΠΊΠ΅ΠΉΡΠΈ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΠ°Π·ΡΡΡΠ½Π΅Π½ΠΈΠ΅ @sandersn; ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΌΠΎΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ. ΠΡ Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΡ Π½Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΈ Ρ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ Π΄ΠΎ 6.0.0, Π½ΠΎ Π΄Π°ΠΆΠ΅ Π² ΡΡΠΎΠΌ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅, ΠΏΠΎΡ ΠΎΠΆΠ΅, Π΅ΡΠ΅ Π½Π΅Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠ³ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ: ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π² ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅?
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ: Ρ Π±Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΏΠΎΠΌΠΎΡΡ, Π½ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Β«ΠΏΡΠΎΡΡΠΎΒ» Π² Π²ΡΠΏΡΡΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ :)
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ 2: ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠ»Π° Π½Π° TS 3.7, ΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΈΠ· Π΄Π²ΡΡ Π·ΠΎΠ» Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π»ΠΎΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏΡ ΠΈΠ· ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠ° Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΡΠ΅ΠΌ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» .d.ts Π² Π½Π°ΡΠ΅ΠΌ tsconfig: https: // www.typescriptlang.org/docs/handbook/module-resolution.html#path -mapping
@mattcasey ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠΏΠΈΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π°ΡΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅? ΠΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» index.d.ts Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΠΏΡΡΡΠΌΠΈ ΡΠΊΡΠΏΠΎΡΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠ° Ρ Π½ΠΎΠ²ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ?
Π’ΠΈΠΏΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ / Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ·Π»ΠΎΠ²
npm install -g @types/node@8
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠΈΠΏΡ / ΡΠ·Π΅Π» ΡΠΊΠ°Π·Π°Π½Ρ ΠΊΠ°ΠΊ Π² devDependencies, ΡΠ°ΠΊ ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ
"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., ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΠΡΡΡΠΊΠ΅ΠΉΡΠΈ
ΠΠ½ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ» "typescript": "~ 3.6" Π² ΡΠ°ΠΉΠ» package.json, Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΠ» "npm install" Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅, ΠΈ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
Π’Π° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΠΎΠ½ΠΈΠ·ΠΈΠ» Π²Π΅ΡΡΠΈΡ Π΄ΠΎ 3.6.4, ΠΎΠ½Π° ΡΡΠ°Π±ΠΎΡΠ°Π»Π°.
Π’Π° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΌΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ npm uninstall -g typescript
ΡΡΠΎΠ±Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ tsc
ΠΈΠΌΠ΅Π»Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. Π― ΠΌΠΎΠ³ Π±Ρ Π½Π°ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Ρ PATH
Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ...
@ woppa684 ΠΌΠΎΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π»Ρ Protractor ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Typescript ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ node_modules. ΠΠΎΠΉ ΡΠ°ΠΉΠ» 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"]
}
}
}
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Typescript 3.7 Ρ ΡΠΎΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠ° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠΏΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΠΈ.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ, - ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ±ΠΎΡΠΊΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠ° Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ Π² https://github.com/angular/protractor/pull/5326/.
ΠΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΅Π³ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠ°.
// package.json
"protractor": "tomyam1/protractor-ts3.7-fix"
Π£ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ DevOps Ρ Angular. ΠΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠ°Π»ΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ. Π― Π²Π΅ΡΠ½ΡΠ»ΡΡ ΠΈ Π²Π·ΡΠ» package.json ΠΈ package-lock.json, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Π», ΡΡΠΎ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ.
Π― ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» Angular. Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ
Π²Π΅ΡΡΠΈΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°. ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΠΌΠΎΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π½ΠΎ Π½Π΅ Π½Π° DevOps. ΠΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ vs build. ΠΠ°ΡΠ΅ΡΠΈΠ°Π» npm / ng ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
Π ΠΌΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ.
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. ΠΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°Π΄ Π²ΡΠΏΡΡΠΊΠΎΠΌ ΠΏΠ°ΡΡΠ°.
ΠΊ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ: ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° tsc "skipLibCheck": true
Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΌ ΠΎΠ±Ρ
ΠΎΠ΄Π½ΡΠΌ ΠΏΡΡΠ΅ΠΌ Π΄Π»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ Π·Π°ΡΡΠΎΠ½ΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
ΠΡΠΈΠ²Π΅Ρ ΡΡΡ!
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅
Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:ΠΠ¨ΠΠΠΠ Π² [Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅] ./node_modules/protractor/built/index.d.ts:5:10
TS2440: ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΏΠΎΡΡΠ° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΠ΅Ρ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ PluginConfig.
ΠΠ¨ΠΠΠΠ Π² [Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅] ./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} = ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ('ΠΆΠ°ΡΠΌΠΈΠ½-ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°-ΡΠ΅ΠΏΠΎΡΡΠ΅Ρ');
export.config = {
allScriptsTimeout: 11000,
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ: [
'./e2e/ * / .e2e-spec.ts'
],
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ: {
'browserName': 'Ρ ΡΠΎΠΌ'
},
directConnect: ΠΏΡΠ°Π²Π΄Π°,
baseUrl: ' http: // localhost : 4200 /',
ΠΊΠ°ΡΠΊΠ°Ρ: 'ΠΆΠ°ΡΠΌΠΈΠ½',
jasmineNodeOpts: {
showColors: ΠΏΡΠ°Π²Π΄Π°,
defaultTimeoutInterval: 30000,
print: function () {}
},
onPrepare () {
require ('ts-node'). register ({
ΠΏΡΠΎΠ΅ΠΊΡ: 'e2e / tsconfig.e2e.json'
});
jasmine.getEnv (). addReporter (Π½ΠΎΠ²ΡΠΉ SpecReporter ({spec: {displayStacktrace: true}}));
}
};
- ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ - ΡΠ±ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ npm run
ΠΠ°ΠΏΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΌΠΎΠ³ΠΈΡΠ΅ ΠΌΠ½Π΅ ΡΠ΅ΡΠΈΡΡ
ΠΡΠΈΠ²Π΅Ρ SachinBN,
ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Typescript, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΠΈΠΆΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅ VS Code, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡΠΈΡ (Π±Π΅Π· ΠΊΠ°Π²ΡΡΠ΅ΠΊ).
"npm install -g [email protected] "
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²Π΅ΡΡΠΈΡ ΠΌΠ°ΡΠΈΠ½ΠΎΠΏΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π½Π° VS Code, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΠΈΠΆΠ΅
"tsc -v"
ΠΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ 3.6.2. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡ ΠΆΠ΅ Π²Π΅ΡΡΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ package.json. ΠΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΈ Π½Π° 3.6.2 ΡΠ½ΠΎΠ²Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Β«tscΒ», ΠΎΡΠΈΠ±ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΡΠ΅Π·Π½ΡΡΡ.
ΠΠ°Π΄Π΅ΡΡΡ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ.
Π‘ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ,
ΠΠΌΠ΅Ρ
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ angular, ΠΈ Ρ ΠΌΠΎΠ³Ρ ΡΠ΅ΡΠΈΡΡ Π΅Π΅, ΡΠ΄Π°Π»ΠΈΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠΏΠΎΡΡΠ° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΡΠ°Π²ΠΈΡΡΡΡ:
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {ΡΠ»Π΅ΠΌΠ΅Π½Ρ} ΠΈΠ· ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠ°
ΠΈΠΌΠΏΠΎΡΡ {ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅} ΠΈΠ· ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠ°
ΠΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈ ΠΈΡ
, Ρ Π±ΡΠ΄Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ.
ΠΠΎΠΉ ΡΡΠ°Π±ΠΎΡΠ°Π», Π½Π°Π΄Π΅ΡΡΡ, Π²Π°Ρ ΠΊΠΎΠ΄ ΡΠΎΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π‘ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ,
ΠΠΈΡΠΈΡ ΠΠΈΠ½Π·ΡΠ²Π°Π΄ΠΈΡ
npx tsc -v
Version 3.8.3
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ·Π΅Π» ΠΈ NPM.
ΠΠΎΠΉ ΡΠ°ΠΉΠ»
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');
ΠΠ½ΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ TypeScript ΠΏΡΠΎΡΡΠΎ Π²ΠΈΠ½ΠΈΡ Π² ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΡΠ΅ΠΉ-ΡΠΎ Π΄ΡΠΌΡΡΠΈΠΉΡΡ ΠΏΠΈΡΡΠΎΠ»Π΅Ρ.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ OP Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ° .spec.ts. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ½Π΅ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ
ΡΠ΅ΡΡΠΎΠ², Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΄Π°Π»ΠΈΠ» Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ npm uninstall protractor
ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ TypeScript Π²ΡΠ΄Π°Π» Π½Π°ΡΡΠΎΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
ERROR in src/app/.../...spec.ts:12:30 - error TS2307: Cannot find module 'protractor'.
12 import { EventEmitter } from 'protractor';
ΠΡΠΈΡΠΈΠ½Π° Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Visual Studio Code Π½Π΅ΠΎΠ±ΡΡΡΠ½ΠΈΠΌΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π» ΡΡΠΎΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠΏΠΎΡΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ, import { EventEmitter } from '@angular/core';
Π²ΡΠ΅ Π΅ΡΠ΅ Π΅ΡΡΡ ΡΡΠΎ Π² 4.0.2 .. Ρ ΠΌΠΌΠΌ
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ angular, ΠΈ Ρ ΠΌΠΎΠ³Ρ ΡΠ΅ΡΠΈΡΡ Π΅Π΅, ΡΠ΄Π°Π»ΠΈΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠΏΠΎΡΡΠ° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΡΠ°Π²ΠΈΡΡΡΡ:
ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ {ΡΠ»Π΅ΠΌΠ΅Π½Ρ} ΠΈΠ· ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠ°
ΠΈΠΌΠΏΠΎΡΡ {ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅} ΠΈΠ· ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠ°ΠΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈ ΠΈΡ , Ρ Π±ΡΠ΄Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ.
ΠΠΎΠΉ ΡΡΠ°Π±ΠΎΡΠ°Π», Π½Π°Π΄Π΅ΡΡΡ, Π²Π°Ρ ΠΊΠΎΠ΄ ΡΠΎΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.Π‘ ΡΠ²Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ,
ΠΠΈΡΠΈΡ ΠΠΈΠ½Π·ΡΠ²Π°Π΄ΠΈΡ
ΠΠ»Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ Π±ΡΠ» Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠΌΠΏΠΎΡΡ VSCode, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π» EventEmitter
ΠΈΠ· Protractor
Π²ΠΌΠ΅ΡΡΠΎ @angular/core
. ΠΡΠΏΡΠ°Π²ΠΈΠ² ΡΡΠΎ, Ρ ΡΠ΅ΡΠΈΠ» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π½Π΅ Π»ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ , Π½ΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² tsconfig.json ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: