Typescript: ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… tsconfig.json для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 26 июн. 2015  Β·  37ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: microsoft/TypeScript

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько tsconfig.json ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ своСго Ρ€ΠΎΠ΄Π° tsconfig.json всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, располоТСнного Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² tsconfig.json располоТСнных Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ / Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для этого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°? Как .gitignore .

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ внСшнСго модуля Π² срСдС node . Π’Π°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² (Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ), Π½ΠΎ Π½Π° этапС компиляции ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ большой Ρ„Π°ΠΉΠ».

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

НаконСц-Ρ‚ΠΎ я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

моя структура прилоТСния:
- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ /- app / client / (ΠΌΠΎΠΉ исходный ΠΊΠΎΠ΄ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°)- app / server / (исходный ΠΊΠΎΠ΄ Π½Π° сторонС ΠΌΠΎΠ΅Π³ΠΎ сСрвСра)- app / build / (Π³Π΄Π΅ я Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽ js)- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ / ΡƒΠ·Π»Ρ‹-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ /- app / package.json- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ / tsconfig.server.json- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ / tsconfig.client.json

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ tsconfig.server.json:
{"compilerOptions": {..., "outDir": _ "build / server" _},"exclude": ["node_modules", "client"]}

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ tsconfig.client.json:
{"compilerOptions": {..., "outDir": "build / client"},"exclude": ["node_modules", "server"]}


Π—Π°Ρ‚Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° я Ρ…ΠΎΡ‡Ρƒ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ сСрвСра, я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ· ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° прилоТСния:

tsc --p tsconfig.server.json


И Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ· ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° прилоТСния:

tsc --p tsconfig.client.json


Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ сСрвСра, я Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² package.json:

"scripts": {..., "tsc": "tsc --p tsconfig.server.json && tsc --p tsconfig.client.json", ...}

Π—Π°Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ сСрвСр, ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, я просто Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ это ΠΈΠ· своСго ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° прилоТСния:

npm run tsc

НадСюсь, этот ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ :-)

ВсС 37 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @lazutkin. Π’ настоящСС врСмя это Π½Π΅ поддСрТиваСтся, хотя я просто Ρ…ΠΎΡ‡Ρƒ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с # 2869, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° отчасти связана.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» tsconfig.json, блиТайший ΠΊ создаваСмой Π²Π°ΠΌΠΈ ΠΏΠ°ΠΏΠΊΠ΅, Ссли Π²Ρ‹ запускаСтС tsc Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅. поэтому, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с tsconfig.json, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ Π²ΠΎ внСшнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

Π― Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ / пСрСопрСдСлСния ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… tsconfig.json.

НСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² tsconfig Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅: ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° tsc Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» tsconfig Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, tsc останавливаСтся здСсь ΠΈ создаСт Π½ΠΎΠ²Ρ‹ΠΉ процСсс tsc с собствСнным Ρ„Π°ΠΉΠ»ΠΎΠΌ tsconfig.

@Eisenspalter это ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Π·Π°Π΄Π°Π½ΠΈΠ΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° сборки, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ grunt, gulp ΠΈΠ»ΠΈ msbuild.

@mhegazy Π― согласСн с @Eisenspalter, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΎΠ±Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π΅ ΠΎ процСссС сборки, Π° ΠΎ процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ написаниС исходников, тСстированиС ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ сборкой. На всСх этих ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… этапах Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° со стороны typescript Π²ΠΊΠ»ΡŽΡ‡Π°Ρ intellisense, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Ρ‚. Π”. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Ρ€Π°Π½Π΅Π΅, для Ρ€Π°Π·Π½Ρ‹Ρ… частСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ исходного ΠΊΠΎΠ΄Π° (внСшниС ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΈ Ρ‚. Π΄.), ΠΈ здСсь Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ tsconfig.

@mhegazy ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π·Π°ΠΊΡ€Ρ‹Π»ΠΈΡΡŒ? ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ снова.

сСгодня Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько tsconfig, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ². Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ Π² srctsconfig.json, ΠΎΠ΄ΠΈΠ½ Π² teststsconfig.json ΠΈ Ρ‚. Π΄. компилятор / tools Π½Π°ΠΉΠ΄Π΅Ρ‚ Ρ„Π°ΠΉΠ», пройдя Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ блиТайший. Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Ρ„Π°ΠΉΠ» Π² ΠΊΠΎΡ€Π½Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ всС.

ВсС это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сСгодня Π² компиляторС ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… IDE. исходная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρƒ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Π― Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ достаточно цСнности, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.

По Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ вопросу:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° tsc Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» tsconfig Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, tsc останавливаСтся здСсь ΠΈ создаСт Π½ΠΎΠ²Ρ‹ΠΉ процСсс tsc со своим собствСнным Ρ„Π°ΠΉΠ»ΠΎΠΌ tsconfig.

Как я ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» Ρ€Π°Π½Π΅Π΅, tsconfig.json прСдставляСт собой ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² tsc.js / tsc.exe, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Π²Π°ΠΌ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ сборки.

@lazutkin ΠΈ @Eisenspalter ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π½Π° вопросы

@mhegazy
НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² tsconfig.json. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, с TypeScript 1.7.3 считываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» tsconfig.json, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ оТидаСтся, находится Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ (ΠΈΠ»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅) ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

@Ziink, ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π²Ρ‹ΡˆΠ΅ Π½Π΅ касался Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… tsconfigs Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Ρ€Π΅Ρ‡ΡŒ шла ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ tsconfig. Π²ΠΎΡ‚ ΠΊΠ°ΠΊ устроСн ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ts, см. https://github.com/Microsoft/TypeScript/tree/master/src , каТдая ΠΏΠ°ΠΏΠΊΠ° Π² src ΠΈΠΌΠ΅Π΅Ρ‚ свой tsconfig.json

Π£ мСня Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, написанный Π½Π° TypeScript, ΠΈ я Ρ…ΠΎΡ‡Ρƒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±ΠΎΠΈΠΌΠΈ:

  1. Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ (скаТСм, Ρ„Π°ΠΉΠ»Ρ‹ Π² /browser ) с ES5 / AMD ΠΈ
  2. nodejs (Ρ„Π°ΠΉΠ»Ρ‹ Π² server ) с CommonJS ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ (ΠΈ async / await Π² TS).

Π•ΡΡ‚ΡŒ нСсколько ΠΎΠ±Ρ‰ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², скаТСм, Π² ΠΏΠ°ΠΏΠΊΠ΅ ( /common ), ΠΈ Π΅ΡΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΈΠ· common Π² browser ΠΈ server .
Как я ΠΌΠΎΠ³Ρƒ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с сохранСниСм ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ IDE, всСх ошибок ΠΈ Ρ‚. Π”.? НС ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ дискуссия ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»Π° Π½Π° ΠΌΠΎΠΈ сомнСния.

@bartq Π’ TS 1.8 я Π±Ρ‹ создал Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° tsconfig, ΠΎΠ΄ΠΈΠ½ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ ΠΎΠ΄ΠΈΠ½ для сСрвСра, ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ» /// ссылки Π² Π²Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… Π² ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΊ ΠΎΠ±Ρ‰ΠΈΠΌ. ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈ Π΄Π°ΠΉΡ‚Π΅ Π½Π°ΠΌ Π·Π½Π°Ρ‚ΡŒ, относится Π»ΠΈ это ΠΊ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ ΠΈΠ»ΠΈ всС Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ части.

Π½Π° самом Π΄Π΅Π»Π΅ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ эти Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° tsconfig.json , WebStorm ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΡ… ΠΈ автоматичСски запускаСт ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ. Если Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΊΠΎΠ΄ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ классы ΠΈΠ· внСшнСго ΠΊΠΎΠ΄Π° (вмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ концСпция common ), Π½ΠΎ всС это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

НаконСц-Ρ‚ΠΎ я ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

моя структура прилоТСния:
- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ /- app / client / (ΠΌΠΎΠΉ исходный ΠΊΠΎΠ΄ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°)- app / server / (исходный ΠΊΠΎΠ΄ Π½Π° сторонС ΠΌΠΎΠ΅Π³ΠΎ сСрвСра)- app / build / (Π³Π΄Π΅ я Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽ js)- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ / ΡƒΠ·Π»Ρ‹-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ /- app / package.json- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ / tsconfig.server.json- ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ / tsconfig.client.json

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ tsconfig.server.json:
{"compilerOptions": {..., "outDir": _ "build / server" _},"exclude": ["node_modules", "client"]}

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ tsconfig.client.json:
{"compilerOptions": {..., "outDir": "build / client"},"exclude": ["node_modules", "server"]}


Π—Π°Ρ‚Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° я Ρ…ΠΎΡ‡Ρƒ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ сСрвСра, я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ· ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° прилоТСния:

tsc --p tsconfig.server.json


И Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ· ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° прилоТСния:

tsc --p tsconfig.client.json


Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ сСрвСра, я Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² package.json:

"scripts": {..., "tsc": "tsc --p tsconfig.server.json && tsc --p tsconfig.client.json", ...}

Π—Π°Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ сСрвСр, ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, я просто Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ это ΠΈΠ· своСго ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° прилоТСния:

npm run tsc

НадСюсь, этот ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ :-)

Π― Π½Π΅ понимаю, Π² Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²? Π‘ΠΎΠ»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΏΠΊΠΈ Π’ΠžΠ›Π¬ΠšΠž для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ» tsconfig.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅. АргумСнт --p ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π°.

Однако Ρ€Π°Π·Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ компилятора машинописного тСкста Visual Studio (Π½Π΅ говоря ΡƒΠΆΠ΅ ΠΎ CLI) ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. ЕдинствСнный способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это - ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ tsconfig.json Π² Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π²Π°ΠΌ Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ скриптов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° files .

Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

--src / Ρ†Π΅Π»ΡŒ / поиск / tsconfig.json
--src / Ρ†Π΅Π»ΡŒ / ядро ​​/ tsconfig.json
--src / Ρ†Π΅Π»ΡŒ / ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ / tsconfig.json

target / search / tsconfig.json Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

{
  "compilerOptions": {
    "outFile": "../../../build/app/search.js"
  },
  "files": [
    "../../src/common",
    "../../src/search"
  ]
}

И ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π±Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈ.

Π­Ρ‚ΠΎ создаст 3 Ρ„Π°ΠΉΠ»Π° javascript, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ со своСй собствСнной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄ΠΈΠ½.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для объСдинСния / ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ / ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ, Ρ‡Π΅ΠΌ сам компилятор Typescript.

ΠŸΡ€ΠΎΡΡ‚ΠΎ компилятор Typescript Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ справляСтся с ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ - это ΠΎΠ΄Π½ΠΎ ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… прСимущСств использования Typescript.

Π˜Ρ‚Π°ΠΊ, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ, Ссли Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ tsconfig.json ΠΌΠΎΠ³ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ нСсколько ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ, просто ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π΅Π³ΠΎ Π½Π° массив tsconfigs:

[
  {
    "compilerOptions": {
      "outFile": "../../build/search.js"
    },
    "files": [
      "src/common",
      "src/search"
    ],
    "compileOnSave": true
  },
  {
    "compilerOptions": {
      "outFile": "../../build/core.js"
    }
    "files": [
      "src/common",
      "src/core"
    ],
    "compileOnSave": true
  }
]

Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… коммСнтариях ΠΊ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, хотя я согласСн, исходная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° большС связана с наслСдованиСм ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ.

@mhegazy @bartq Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ tsc .
Π£ мСня ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ структура ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²

-- app/
-- app/server  -- here I want es6/commonjs
-- app/server/tsconfig.json
-- app/client    -- here I want es6/es6 
-- app/client/tsconfig.json
-- app/tsconfig.json

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ tsc Ρ‚ΠΎΠ»ΡŒΠΊΠΎ конфигурация ΠΈΠ· app/tsconfig.json , ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ игнорируСтся. Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² VSCode: /

@tomitrescak Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ WebStorm, ΠΈ ΠΎΠ½ достаточно ΡƒΠΌΠ΅Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ блиТайший tsconfig.json ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°. ВСроятно, Π½Π΅ сущСствуСт инструмСнта cmd, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ просмотр Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² tsconfig.json. Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ стороТа FB.

Π”Π°, я Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π» ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π² VS Code. Π― Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. Π’Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. VS Code Π² любом случаС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ опрСдСляСт ошибки.

Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ. Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ React-Native, ΠΈ Π² основном Ρƒ мСня Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ сборки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Ρ…ΠΎΡ‡Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

  1. скрипты ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° React-Native
  2. скрипты, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² HTML для React-Native WebViews (Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹).

НаслСдованиС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² TS 2.1 ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ доступно Π² typescript@next сСгодня. см. https://github.com/Microsoft/TypeScript/issues/9876 для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… свСдСний. Благодаря этому Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ "Π³Π»Π°Π²Π½Ρ‹ΠΉ" tsconfig.json ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΎΡ‚ Π½Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π²Π°ΠΌ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² tsconfig.json, Π½ΠΎ ваша IDE Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ.

Π£ мСня ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ структура ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²:

β”œβ”€β”€ examples
β”‚   β”œβ”€β”€ files...
β”‚   └── tsconfig.json
β”œβ”€β”€ src
β”‚   └──files...
└── tsconfig.json

ΠšΠΎΡ€Π΅Π½ΡŒ tsconfig.json ΠΈΠΌΠ΅Π΅Ρ‚:

{
  "compilerOptions": {
    "target": "es2015",
    "module": "commonjs",
    "moduleResolution": "node",
    "outDir": "dist",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "declaration": true,
    "allowJs": false
  },
  "include": [
    "./src"
  ],
  "compileOnSave": false,
  "buildOnSave": false,
  "atom": { "rewriteTsconfig": false }
}

examples/tsconfig.json ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ:

  "include": [
    "./hello-world"
  ],

Когда я дСлаю:

cd examples
tsc

Он ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚:

β”œβ”€β”€ examples
β”‚   β”œβ”€β”€ dist
β”‚   β”‚   β”œβ”€β”€ examples
β”‚   β”‚   └── src
β”‚   β”œβ”€β”€ files...
β”‚   └── tsconfig.json
β”œβ”€β”€ src
β”‚   └──  files...
└── tsconfig.json

( dist Π½Π΅Π²Π΅Ρ€Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ внСшнюю ΠΏΠ°ΠΏΠΊΡƒ src ΠΈ компилируСтся ΠΊΠ°ΠΊ ΠΈΠ· ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ)

НС ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ (Π² examples/tsconfig.json ):

  "exclude": [
    "../src"
  ],

Π§Ρ‚ΠΎ я дСлаю Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ?

Π― ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Если Π² ΠΌΠΎΠ΅ΠΌ examples/hello-world/any-file*.ts этот ΠΈΠΌΠΏΠΎΡ€Ρ‚:

import { SomeClass } from '../../src';

Π­Ρ‚ΠΎ создаСт ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

import { SomeClass } from '../../';

Но ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° машинописного тСкста include Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ оТидалось?

Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ это Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ
Он настаиваСт Π½Π° Β« ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: Π½Π΅ удаСтся Π½Π°ΠΉΡ‚ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ tsconfig.jsonΒ», хотя Ρƒ мСня Π΅ΡΡ‚ΡŒ tsconfig.json Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅, Π½Π΅ знаю, Ρ‡Ρ‚ΠΎ с этим Π΄Π΅Π»Π°Ρ‚ΡŒ.

@zhukovka, поТалуйста, зарСгистрируйтС Π½ΠΎΠ²ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌ воспроизвСдСниСм, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ локально

@RyanCavanaugh О. спасибо я разобрался
ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° воспроизводится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΈΠ· тСстовой ΠΏΠ°ΠΏΠΊΠΈ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ tsconfig.json), Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π² ΠΏΠ°ΠΏΠΊΠ΅ 'src' (которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ tsconfig.json)
Π° Ρ„Π°ΠΉΠ» ΠΈΠ· тСстовой ΠΏΠ°ΠΏΠΊΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ src. Π’ этом случаС Ρ„Π°ΠΉΠ» ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ src Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚ своСго Β«Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ tsconfig.jsonΒ»

@RyanCavanaugh , ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° компиляции с нСсколькими Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ tsconfig.json, ΠΏΠΎΡ…ΠΎΠΆΠ΅, ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ являСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ. Π’ ΠΌΠΎΠΈΡ… случаях ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ мСста располоТСния сгСнСрированных Ρ„Π°ΠΉΠ»ΠΎΠ² Π²Ρ‹Π²ΠΎΠ΄Π°. ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ Ссли Π±Ρ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ сопоставлСния paths ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ½Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΌΠΎΠΉ сгСнСрированный ΠΊΠΎΠ΄ ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ исходный, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»Π°ΡΡŒ Π±Ρ‹.

Мой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π΅ΡΡ‚ΡŒ большая ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ кодовая Π±Π°Π·Π°, которая Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ строгиС ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ², ΠΈ я Ρ…ΠΎΡ‡Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π² Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ _дСйствуСт_ строгиС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΈ я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΊΠΎΠ΄ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ Π½Π΅Π΅ Π΅ΡΡ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ случаСв, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ всС Ρ‚ΠΈΠΏΡ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для имСнования Ρ‚ΠΈΠΏΠΎΠ² для Π΅Π΅ экспорта (# 9944). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я Ρ…ΠΎΡ‡Ρƒ просто Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΡƒΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ Π² Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ, Π½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π² соотвСтствии с Π±ΠΎΠ»Π΅Π΅ слабыми ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ. Π­Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ 2 Ρ€Π°Π·Π½Ρ‹Ρ… этапа компиляции; ΠΊΠΎΠ³Π΄Π° компилятор Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с исходными Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слабыС ΠΏΡ€Π°Π²ΠΈΠ»Π°.

Для мСня Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования - это Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π΅ΠΏΠΎ, которая запускаСтся с использованиСм node ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ скомпилирована Π΄ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ commonjs, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ другая Ρ‡Π°ΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ скомпилирована Π² ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ES6, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ treehaking Π² ES6. ΠžΠΏΡ‹Ρ‚ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆ, Π² ΠΌΠΎΠ΅ΠΌ случаС ΠΌΠ½ΠΎΠ³ΠΎ Π²Π·Π»ΠΎΠΌΠ° с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ окруТСния TS_NODE_PROJECT . Π­Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ каТСтся Ρ‡Π΅ΠΌ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ чСртовски Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° я, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², мСняю ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹.

Π― всС Π΅Ρ‰Π΅ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π±Ρ‹Π»ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΎ. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ огромная ΠΏΠΎΠ±Π΅Π΄Π° для Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² tsconfig.json для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ модуля Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

@Robinfr, Ρ‡Ρ‚ΠΎ extends Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ для вас?

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Ρ‚Π°ΠΊ. Π― ΡƒΠ·Π½Π°Π» ΠΎΠ± этом послС этого поста. Однако слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π½Π΅ сработало Π±Π΅Π· установки include для Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ k ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ трСбуСтся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· webpack.

Оп 15 сСн. 2017 9:24 schreef ΠšΠΈΡ‚ΡΠΎΠ½ КСлли [email protected] :

@Robinfr https://github.com/robinfr Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#configuration-inheritance-with-extends Π½Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ для вас?

-
Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ это, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ вас упомянули.
ΠžΡ‚Π²Π΅Ρ‚ΡŒΡ‚Π΅ Π½Π° это элСктронноС письмо Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, просмотритС Π΅Π³ΠΎ Π½Π° GitHub https://github.com/Microsoft/TypeScript/issues/3645#issuecomment-329703706 ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΠΊ https://github.com/notifications/unsubscribe-auth/AD90FLZKcHMJeFU0osJroToToJawl .

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ @kitsonk Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, хотя, Ссли я Π½Π΅ дСлаю Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ, ΠΌΠ½Π΅ придСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ настройки (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΏΠΎΠΊ build ΠΈ node_modules) Π² ΠΎΠ±ΠΎΠΈΡ… ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°Ρ…. для мСня самая большая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС ΠΌΠΎΠΈ инструмСнты Π·Π½Π°ΡŽΡ‚, ΠΊΠ°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ являСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды TS_NODE_PROJECT . Π”Ρ€ΡƒΠ³ΠΎΠΉ - ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с двумя tsconfigs Π² VS.code. НСт способа (насколько я знаю) ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ VS, ΠΊΠ°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ошибки Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚Ρ‹ ΠΈΠ·-Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… настроСк для этих Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ tsconfig (скаТСм, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ tsconfig.build.json).

@voy, ΠΌΠΎΠ³Ρƒ я ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρƒ вас Π΄Ρ€ΡƒΠ³ΠΎΠΉ tsconfig для сборки? Насколько я понял, VSCode ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ блиТайший Ρ„Π°ΠΉΠ» tsconfig ( tsconfig.json ) ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅. ЕдинствСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я столкнулся Π΄ΠΎ сих ΠΏΠΎΡ€, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ» tsconfig Π² ΠΊΠΎΡ€Π½Π΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ VSCode, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ...

@Robinfr ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ. Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρƒ мСня Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ webpack ΠΈ babel ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ES6 для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ встряхивания Π΄Π΅Ρ€Π΅Π²Π°. Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ процСсса сборки ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ с использованиСм node, поэтому ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² require. Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, ΠΊΠ°ΠΊ я ΠΌΠΎΠ³Ρƒ это ΠΎΠ±ΠΎΠΉΡ‚ΠΈ.

@voy, Ρ€Π°Π·Π²Π΅ Π±Ρ‹ Ρƒ вас Π½Π΅ Π±Ρ‹Π»ΠΎ этих Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅? НапримСр, 1 ΠΏΠ°ΠΏΠΊΠ° для всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Babel ΠΈ webpack ΠΈ 1 для Ρ„Π°ΠΉΠ»ΠΎΠ² ΡƒΠ·Π»ΠΎΠ². Π’ΠΎΠ³Π΄Π° Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ просто tsconfig.json для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих ΠΏΠ°ΠΏΠΎΠΊ. Π Π°Π·Π²Π΅ это Π½Π΅ сработало Π±Ρ‹ для вас?

@Robinfr, это Π±Ρ‹Π»ΠΎ Π±Ρ‹ идСально, Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это Π½Π΅ всСгда Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅. Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС наши Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΈ ΠΌΠ°ΡˆΠΈΠ½ΠΎΠΏΠΈΡΠ½Ρ‹ΠΌΠΈ, скомпилированными ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π² соотвСтствии с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ вся кодовая Π±Π°Π·Π° TypeScript, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ссылку, Π½ΠΎ это ΠΈΠ½ΠΎΠ³Π΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π²ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ я ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ