Rollup-plugin-typescript2: рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рджреЗрдЦреЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдЬрдире░ 2019  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ezolenko/rollup-plugin-typescript2

рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП rollup-plugin-typescript рд╕реЗ rollup-plugin-typescript2 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╕рдордп, *.vue рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдм рдкрд╣рдЪрд╛рдирд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред

[!] (rpt2 plugin) Error: someFolder/index.ts(2,53): semantic error TS2307 Cannot find module './component.vue'.
src\index.ts
Error: someFolder/index.ts(2,53): semantic error TS2307 Cannot find module './component.vue'.

рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ rollup-plugin-typescript2 рдмрдВрдбрд▓реЛрдВ рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ rollup-plugin-typescript рдЖрдпрд╛рдд рдХрд░рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ред

рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рд░ рдкреНрд▓рдЧрдЗрди рдХрд╛)ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдПрдХрд▓ Vue рдШрдЯрдХ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╣ рд╣реИ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдбред рдХрд┐рд╕реА рдХреЛ рднреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИ, рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдЬреЛ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рд╣реИред

рд░реЛрд▓рдЕрдк рд╕рдЪрдореБрдЪ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рдХреНрдпреЛрдВ? рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

<script lang="ts">
import Bar from './Bar.vue';
...
</script>

1) Vue рдкреНрд▓рдЧрдЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд▓рдЧрдЗрди рдкрд░ рднреЗрдЬрддрд╛ рд╣реИ
2) рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд▓рдЧрдЗрди рдПрдХ .vue рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд░реЛрд▓рдЕрдк рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╡реЗрдмрдкреИрдХ рдЬреИрд╕реЗ рдЖрдпрд╛рдд рдкрд░ рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдирд┐рдпрдорд┐рдд рдЬреЗрдПрд╕ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
3) рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдпрд╣ lang=scss рдпрд╛ lang=ts рд╕реЗ рдЕрд▓рдЧ рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реИред

рдЕрдЪреНрдЫрд╛, рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ?

рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВред

рд▓реЗрдХрд┐рди vuetify! рдмрдлрд╝реА!

Vuetify рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди SFC рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╢реБрджреНрдз рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реИред

Buefy SFC рдФрд░ рд░реЛрд▓рдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛?

рдЖрдк рдЗрд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдкреНрд░рддреНрдпреЗрдХ Vue рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдордзреНрдпрд╕реНрде рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред

import Bar from './Bar.vue';

export default Bar;

рддрдм рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЖрдк рд░реЛрд▓рдЕрдк рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ SFC рдШрдЯрдХ lib рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рдЧреАрдЬрд╝, рд╡рд╣ рдмреЗрдХрд╛рд░ рд╣реИ

рдпрджрд┐ рдЖрдк рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдП рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдпрд╣ рд╕реБрдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред

рд╕рднреА 14 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ tsconfig рдФрд░ рд░реЛрд▓рдЕрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╛ рдкреНрд░рдЬрдирди рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рд░реЗрдкреЛ :)

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ "рдЫреЛрдЯрд╛" рд░реЗрдкреЛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдпрд╣рд╛рдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, webpack рд╕реЗ rollup рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореЗрдВ рдЖрдпрд╛рдд rollup.config.js рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ rollup-plugin-typescript2 рдЕрдВрддрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдПред

рдирдорд╕реНрддреЗред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ rollup-plugin-typescript рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдореЛ рднрдВрдбрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
https://github.com/danimoh/rollup-plugin-typescript2-vue-demo

рдпрджрд┐ рдЖрдк рд▓рд╛рдЗрди import AnotherComponent from './AnotherComponent.vue'; рдХрдореЗрдВрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рдВрдХрд▓рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕ рд▓рд╛рдЗрди рдХреЗ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдирд╣реАрдВред

рдпрд╣ рдордЬрд╝реЗрджрд╛рд░ рд╣реИ рдХрд┐ рд╣рдордиреЗ рд▓рдЧрднрдЧ рдЙрд╕реА рд╕рдордп рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ред рд╢рд╛рдпрдж рдпрд╣ рд╣рд╛рд▓ рдХреЗ рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЗ рдХрд╛рд░рдг рд╣реБрдЖ рдерд╛?
рд░реЛрд▓рдЕрдк, рд░реЛрд▓рдЕрдк рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕реАрдорд┐рдд рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде рдореЗрд░реА рдУрд░ рд╕реЗ рдПрдХ рдЕрдиреБрдорд╛рди рд╣реЛрдЧрд╛:
рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рд╕реНрд╡рдпрдВ рд░реЛрд▓рдЕрдк рдХреЗ рдмрдЬрд╛рдп AnotherComponent рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реЛ рдпрд╛ rollup-plugin-vue рдЙрд╕ рдЖрдпрд╛рдд рдХреЛ рдкрд╣рд▓реЗ рд╕рдВрднрд╛рд▓ рд░рд╣рд╛ рд╣реЛ?

рдпрд╣ рд╕рдордЭрд╛рдПрдЧрд╛ рдХрд┐ рдХреНрдпреЛрдВ rollup-plugin-typescript рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рддрд┐ рдлрд╝рд╛рдЗрд▓ рдЖрдзрд╛рд░ рдкрд░ transpileModule рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#customizing -module-resolution

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд┐рд╕реА рднреА рдХрд╛рдо рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред

рджреЛрдиреЛрдВ рд░реЗрдкреЛ рдкрд░ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЛ рд░реЛрд▓рдЕрдк рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ vue рдкреНрд▓рдЧрдЗрди рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХреЗред

рд░реЛрд▓рдЕрдк рдХреЗ рдореЙрдбреНрдпреВрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд░реЛрд▓рдЕрдк context.resolveId(...) рд╕реЗ рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рддреЛ рдХреЙрд▓ рдЪреЗрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

  • рд░реЛрд▓рдЕрдк рдХреЙрд▓ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг
  • рдкреНрд▓рдЧрдЗрди рдХреЙрд▓ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдХреЗ LanguageService.getEmitOutput
  • рднрд╛рд╖рд╛ рд╕реЗрд╡рд╛ LanguageHost.resolveModuleNames рдкреНрд▓рдЧрдЗрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ рдФрд░ рдЙрдореНрдореАрдж рдХрд░рддреА рд╣реИ рдХрд┐ рд╣рд▓ рдХрд┐рдП рдЧрдП рдкрде рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдВрдЧреЗ
  • рд╣реЛрд╕реНрдЯ рдХреЙрд▓ рд░реЛрд▓рдЕрдк рдХрд╛ PluginContext.resolveId
  • рд░реЛрд▓рдЕрдк рдПрдХ рд╡рд╛рджрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ
  • рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭреВрдВ, рддреЛ рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рд╡рд╛рджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

LanguageService рд╕рдЦреНрддреА рд╕реЗ рд╕рдордХрд╛рд▓рд┐рдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ: https://github.com/Microsoft/TypeScript/issues/1857

Plugin.transform рд╕реНрд╡рдпрдВ рдПрдХ рд╡рд╛рджрд╛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╡рд╕реНрддреБ рдкрд░ рдХреЙрд▓рдмреИрдХ рдХреЗ рдЕрдВрджрд░ рдЧрд╣рд░реЗ рдХрд┐рдП рдЧрдП рдХрдИ рд╡рд╛рджреЛрдВ рдХрд╛ рдкреАрдЫрд╛ рдХрд░рдиреЗ рдХреА рдпрд╛рдВрддреНрд░рд┐рдХреА рдЗрд╕ рд╕рдордп рдореБрдЭреЗ рджреВрд░ рдХрд░рддреА рд╣реИред

рдХреБрдЫ рд╣рдж рддрдХ рд╕рдВрдмрдВрдзрд┐рдд: https://github.com/rollup/rollup/issues/2631

рд╣реИрд▓реЛ рдПрдЬрд╝реЛрд▓реЗрдВрдХреЛред

рдЖрдЬрдХрд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЕрд░реНрде рд╣реИ рд╡рд╛рджреЗ рд▓реМрдЯрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЗред рдирдпрд╛ async / await рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рдЪреАрдиреА рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЛрдб рдХреЗ рд╕рдорд╛рди рдЕрдкрдирд╛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, async рд╡рд┐рдзрд┐рдпрд╛рдВ рдЕрднреА рднреА рд╡рд╛рджреЗ рд▓реМрдЯрд╛рддреА рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ await рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ async рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛, LanguageHost.resolveModuleNames рд╡рд┐рдзрд┐ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рд╛рджреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд╛рджреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдЙрд╕ рд╡рд┐рдзрд┐ рд╕реЗ рд╡рд╛рдкрд╕ рд▓реМрдЯрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, NodeJs рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдереНрд░реЗрдб рдкрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рд╕рдВрднрд╡ рд╣реИ, рдлрд┐рд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐ рдкрд░ рдХреВрджрдХрд░ рдФрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐ рдХреЗ рд╣рд▓ рд╣реЛрдиреЗ рдкрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐ рдкрд░ рд╡рд╛рдкрд╕ рдХреВрджрдирд╛ред рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдлрд╛рдЗрдмрд░ рдпрд╛ рд░реИрдкрд░ рджреЗрдЦреЗрдВ рдЬреИрд╕реЗ рдХрд┐ sync.js ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрд╕рд┐рдВрдХ рд╡рд┐рдзрд┐ рдЖрдордВрддреНрд░рдг рд╡рд╛рд▓реА рдмрд╛рдд рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЬрдмрдХрд┐ рдкреНрд▓рдЧрдЗрди рд╕рдВрджрд░реНрдн рдПрдХ рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ resolveId , рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред Vue рд╕рд┐рдВрдЧрд▓ рдлрд╛рдЗрд▓ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ transform рдХреЗ rollup-plugin-vue рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкреНрд▓рдЧрдЗрди рд╕рдВрджрд░реНрдн рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЙрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдкреЗрд╢рдХрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ rollup-plugin-vue рдХреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╕реАрдзреЗ vue рдкреНрд▓рдЧрдЗрди рдкрд░ transform рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ рдФрд░ рд░реЛрд▓рдЕрдк рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЗрдЪреНрдЫрд┐рдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд░реЛрд▓рдЕрдк рдХреЛ рд╕рднреА рдЖрдпрд╛рддреЛрдВ рдХреЛ рдПрдХрддреНрд░рд┐рдд рдХрд░рдиреЗ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд░рди рдореЗрдВ рдкреНрд░рддрд┐ рдлрд╝рд╛рдЗрд▓ рдЖрдзрд╛рд░ рдкрд░ transpileModule рдореЗрдВ transform рдХреЗрд╡рд▓ transpileModule рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, vue рдкреНрд▓рдЧрдЗрди рдХреЛ transform рдПрдХрд▓ рдЪрд▓рд╛рдиреЗ рджреЗрдВ рдлрд╝рд╛рдЗрд▓ рдШрдЯрдХреЛрдВ рдФрд░ рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рдХреИрд╢ рдХрд░реЗрдВред рдлрд┐рд░ рд░реЛрд▓рдЕрдк рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рддреНрдпрд╛рдЧ рджреЗрдВ рдФрд░ рдЙрд╕ рдХреЛрдб рдкрд░ рдПрдХ рдЙрдЪрд┐рдд рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдХрд▓рди рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ renderChunk рдпрд╛ generateBundle рдкреНрд▓рдЧрдЗрди рд╣реБрдХ рдореЗрдВ рдХреИрд╢ рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЙрд╕ рдХреЛрдб рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рддреНрдпрд╛рдЧ рджреЗрдВрдЧреЗред

рдЕрднреА рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЕрднреА рддрдХ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рджреВрд╕рд░реЗ рд╡рд┐рдЪрд╛рд░ рдкрд░, рджреВрд╕рд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╢рд╛рдпрдж _that_ рдмрджрд╕реВрд░рдд рдирд╣реАрдВ рд╣реИред renderChunk рдпрд╛ generateBundle рд╣реБрдХ рдХреЗ рдмрдЬрд╛рдп, рдкреНрд▓рдЧрдЗрди рдЦреБрдж рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЕрдВрддрд┐рдо рдЖрдпрд╛рдд рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд╕рдВрдХрд▓рди рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд░реЛрд▓рдЕрдк рдХрддрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдиреНрдп рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рджреНрд╡рд╛рд░рд╛ рднреА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рд╕реЗ рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрднреА рднреА рдЦрд╛рд░рд┐рдЬ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗ рдЕрдВрддрд┐рдо рдмрдВрдбрд▓ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рдлрд┐рд░ рднреА, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреБрдЫ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рднреА рджреЗрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╡реИрд╕реЗ рднреА рддреНрдпрд╛рдЧ рджреЗрдВрдЧреЗред

@danimoh @eddow рджреЛрдиреЛрдВ рдЙрджрд╛рд╣рд░рдг рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб, рдЖрдкрддреНрддрд┐рдЬрдирдХ рдЖрдпрд╛рддреЛрдВ рдХреЗ рдареАрдХ рдКрдкрд░ // @ts-ignore рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдЬрд╛рдБрдЪ рдЕрдХреНрд╖рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рддреНрд░реБрдЯрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд┐рдХрд╛рдпрдд рдХрд░ рд░рд╣реА рд╣реИ рдХрд┐ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ *.vue рд╕рд╛рдорд╛рди рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ ( Cannot find module рдЕрд░реНрде рдореЙрдбреНрдпреВрд▓ рдкреНрд░рдХрд╛рд░ рд╣реИ)ред рдПрдХ рдмрд╛рд░ рдЬрдм рд╡рд╣ рдЪреБрдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдмрдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ vue рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдЖрдпрд╛рдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬрд╝реЗрдВ any рдкреНрд░рдХрд╛рд░ рдХреА рд╣реЛрддреА рд╣реИрдВ рдФрд░ рддреНрд░реБрдЯрд┐ рдЬрд╛рдБрдЪ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред

(рдиреНрдпреВрдирддрдо рд░реЗрдкреЛ рдореЗрдВ, рдкрд╣рд▓реЗ рдШрдЯрдХ рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рд╕рдВрджрд░реНрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЕрдиреНрдпрдерд╛ рд░реЛрд▓рдЕрдк рдЯреНрд░реАрд╢реЗрдХ рдЗрд╕реЗ рдмрдВрдбрд▓ рд╕реЗ рджреВрд░ рдХрд░ рджреЗрддрд╛ рд╣реИ)

@danimoh рд╣рд╛рдБ, рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реЛрд▓рдЕрдк рд╕реЗ рдореЙрдбреНрдпреВрд▓ рд╕реНрд░реЛрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ vue рдкреНрд▓рдЧрдЗрди рдкрдХреНрд╖ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдПрдХ рдорд╛рдорд▓рд╛ рдЦреЛрд▓рд╛), рд▓реЗрдХрд┐рди рдЕрднреА рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдиреБрдХрд╕рд╛рди рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ rpt2 рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рдХрд╛рд▓реА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬрд┐рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╡рд░реНрдгрди Vue рдореБрджреНрджреЗ рдереНрд░реЗрдб рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ Vue рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд╛рдкрд╕ рдлреАрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрд▓рдЕрдк рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЖрдк рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреЛ рдвреАрд▓рд╛ рдХрд░ рджреЗрдВрдЧреЗред

vue рдкреНрд▓рдЧрдЗрди рд╣реИрдВрдбрд▓ ts рджреЗрдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рд╡реИрдз рджреГрд╖реНрдЯрд┐рдХреЛрдг рдФрд░ рдмрджрд╕реВрд░рдд рд╣реИрдХреНрд╕ рдХрд╛ рдПрдХ рдмреЗрд╣рддрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдерд╛:

  • рдХреНрдпрд╛ Vue рдкреНрд▓рдЧрдЗрди рдЗрдВрд╕реНрдЯреЗрдВрд╕ options рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдЬрд╛рдЧрд░ рд╣реБрдЖ рд╣реИ?
    рдЗрд╕ рддрд░рд╣ рд╣рдо vue рдкреНрд▓рдЧрдЗрди рдкрд░ transform рдореЗрдердб рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API рд╕реЗ рдореБрдЭреЗ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ ts CompilerHost рдФрд░ LanguageServiceHost рдХреЛ рдХрд╕реНрдЯрдо fileExists рдЦрд┐рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ readFile , getScriptSnapshot рдФрд░ рдЗрд╕реА рддрд░рд╣ред
  • рдпрджрд┐ рджреЛрдиреЛрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╡реАрдпреВ рдкреНрд▓рдЧрдЗрди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреЛрдб рдХреЛ рдПрдПрд╕рдЯреА рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдПрдПрд╕рдЯреА рд╕реЗ рдЖрдпрд╛рдд рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдЧрд░ рд╡реЗ .vue рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рддреЛ рд╡реАрдпреВ рдкреНрд▓рдЧрдЗрди рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред рд╕рднреА vue рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рдХреИрд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ vue рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдЙрд╕ рдХреИрд╢реНрдб ts рдХреЛрдб рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП readFile рдЬреИрд╕реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджреЗрддреЗ рд╣реИрдВред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрджрд┐ рд╣рдо fileExists рдФрд░ readFile рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдПрд╕рдЯреА рдХреЛ рдкрд╛рд░ рдХрд░рдХреЗ рд╕реНрд╡рдпрдВ рдЖрдпрд╛рдд рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЙрди рд╕рднреА рдЖрдпрд╛рддреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╣ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рд╡реИрд╕реЗ рднреАред рдлрд┐рд░ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдорд╛рдВрдЧ рдкрд░ vue рдкреНрд▓рдЧрдЗрди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

Vue рдкреНрд▓рдЧрдЗрди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╢рд╛рдпрдж рдЙрдЬрд╛рдЧрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд░реЛрд▓рдЕрдк рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрдЫ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ (рддреБрд░рдВрдд рдпрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ)ред

рдЖрдкрдХрд╛ рджреВрд╕рд░рд╛ рдмрд┐рдВрджреБ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдареАрдХ рдпрд╣реА LanguageServiceHost рдХреЗ рд▓рд┐рдП рд╣реИред

рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЦреНрдп рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХрдордЬреЛрд░ рдпреБрдЧреНрдорди рдХреЗ рд╕рд╛рде vue рдкреНрд▓рдЧрдЗрди рдФрд░ рдереНрд░реЛрдЕрд╡реЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрдХреНрд░ рд╣реИред

рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рд░реЛрд▓рдЕрдк рдХреЗ рдкрд╛рд╕ рдкреНрд▓рдЧрдЗрди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реАрдХрд╛ рдерд╛ рдФрд░ рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЧрдИ рдереА, рдлрд┐рд░ рдЗрд╕реЗ рд╕рдлрд╛рдИ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ ...

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдлрд╛рд▓рддреВ рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рд╛рде рд╣реА vue рдкреНрд▓рдЧрдЗрди рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдпрджрд┐ рд╣рдо рдирд┐рдХрд╛рд▓реЗ рдЧрдП ts рдХреЛрдб рдХреЛ рдХреИрд╢ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд┐рд╕реА рднреА рдкрд░рд┐рдгрд╛рдо рдпрд╛ рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдирд╣реАрдВ рдЫреЛрдбрд╝рддрд╛ рд╣реИред

рд╣рд╛рдБ, рд░реЛрд▓рдЕрдк рдореЗрдВ рдХреБрдЫ рд╡рд╛рд╕реНрддреБ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╢рд╛рдпрдж рдЙрдореНрд░ рд▓рдЧ рдЬрд╛рдПрдЧреАред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╣рдореЗрдВ рдЕрднреА рднреА рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рдЪреАрдЬ рдХреЛ рдПрдХ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛ рд╣рдо рднреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЗрд╕ ред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдПрдХрд▓ Vue рдШрдЯрдХ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

import VuePlugin from 'rollup-plugin-vue'
import typescript from 'rollup-plugin-typescript2'

export default {
  plugins: [
    typescript({
      typescript: require('typescript'),
      objectHashIgnoreUnknownHack: true,
    }),
    VuePlugin(/* VuePluginOptions */),
  ],
  input: 'src/components/HelloWorld.vue',
  output: [
    { file: 'dist/HelloWorld.cjs.js', format: 'cjs' },
    { file: 'dist/HelloWorld.esm.js', format: 'esm' },
  ],
}

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓реИрдВрдЧ = "рдЯреАрдПрд╕" рдХреЗ рд╕рд╛рде рд╡реАрдпреВ рдПрд╕рдПрдлрд╕реА рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рд▓рд╛рд╣ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдПрдХрд▓ Vue рдШрдЯрдХ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╣ рд╣реИ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдбред рдХрд┐рд╕реА рдХреЛ рднреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИ, рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдЬреЛ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рд╣реИред

рд░реЛрд▓рдЕрдк рд╕рдЪрдореБрдЪ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рдХреНрдпреЛрдВ? рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

<script lang="ts">
import Bar from './Bar.vue';
...
</script>

1) Vue рдкреНрд▓рдЧрдЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд▓рдЧрдЗрди рдкрд░ рднреЗрдЬрддрд╛ рд╣реИ
2) рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд▓рдЧрдЗрди рдПрдХ .vue рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд░реЛрд▓рдЕрдк рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╡реЗрдмрдкреИрдХ рдЬреИрд╕реЗ рдЖрдпрд╛рдд рдкрд░ рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдирд┐рдпрдорд┐рдд рдЬреЗрдПрд╕ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
3) рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдпрд╣ lang=scss рдпрд╛ lang=ts рд╕реЗ рдЕрд▓рдЧ рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реИред

рдЕрдЪреНрдЫрд╛, рдореИрдВ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ?

рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВред

рд▓реЗрдХрд┐рди vuetify! рдмрдлрд╝реА!

Vuetify рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди SFC рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╢реБрджреНрдз рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реИред

Buefy SFC рдФрд░ рд░реЛрд▓рдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛?

рдЖрдк рдЗрд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдкреНрд░рддреНрдпреЗрдХ Vue рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдордзреНрдпрд╕реНрде рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред

import Bar from './Bar.vue';

export default Bar;

рддрдм рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЖрдк рд░реЛрд▓рдЕрдк рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ SFC рдШрдЯрдХ lib рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рдЧреАрдЬрд╝, рд╡рд╣ рдмреЗрдХрд╛рд░ рд╣реИ

рдпрджрд┐ рдЖрдк рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдП рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдпрд╣ рд╕реБрдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

HelloDennis picture HelloDennis  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

freeman picture freeman  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

amacleay picture amacleay  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mikob picture mikob  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

DrSensor picture DrSensor  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ