Rollup-plugin-typescript2: рд╕рд┐рдореНрд▓рд┐рдВрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдЕрдХреНрддреВре░ 2019  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ezolenko/rollup-plugin-typescript2

typescript2 symlink issue

рдЬрдм рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рд╕рд┐рдорд▓рд┐рдВрдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд░реЛрд▓рдЕрдк рддреНрд░реБрдЯрд┐ рджреЗ рд░рд╣рд╛ рд╣реИ "рддреНрд░реБрдЯрд┐: рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЯреЛрдХрди (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рд╣реИрдВ)"

рд╡рд╛рддрд╛рд╡рд░рдг

рд╕рдВрд╕реНрдХрд░рдгреЛрдВ

  • рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ: ^ 3.6.4
  • рд░реЛрд▓рдЕрдк:"^1.26.0"
  • рд░реЛрд▓рдЕрдк-рдкреНрд▓рдЧрдЗрди-рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ2:^0.24.3

рд░реЛрд▓рдЕрдк.config.js

tsconfig.json

рдкреИрдХреЗрдЬ.рдЬреЗрд╕рди

рд╡рд░реНрдмреЛрд╕рд┐рдЯреА рдХреЗ рд╕рд╛рде рдкреНрд▓рдЧрдЗрди рдЖрдЙрдЯрдкреБрдЯ 3

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

рдПрдХ рд╣реА рдореБрджреНрджрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рд░реЛрд▓рдЕрдк рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЯреЛрдХрди рдХреА рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИред

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

рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рд╕рд┐рдореНрд▓рд┐рдВрдХ? рдХреНрдпрд╛ рдУрдПрд╕, рд╕реЙрдлреНрдЯ рдпрд╛ рд╣рд╛рд░реНрдб рд▓рд┐рдВрдХ? рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рдЖрдк рдкреНрд░рдЬрдирди рдХреЗ рд╕рд╛рде рд░реЗрдкреЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╡рд┐рдВрдбреЛрдЬ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдоред рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП "рдПрдирдкреАрдПрдо рд▓рд┐рдВрдХ" рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рдорд▓рд┐рдВрдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рддреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╕рд┐рдореНрд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2 рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 1 рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рд╕рд┐рдореНрд▓рд┐рдВрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдПрдирдо рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдПрдХ рд╣реА рдореБрджреНрджрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рд░реЛрд▓рдЕрдк рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЯреЛрдХрди рдХреА рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИред

рд▓рд░реНрди рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рдореБрджреНрджрд╛
рдЕрдЧрд░ рдореИрдВ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕реАрдзреЗ node_modules рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рд┐рдореНрд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

@PavaniVaka @TerenceZ @thealjey рдкреНрд░рдЬрдирди рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореМрдХрд╛?

@ezolenko рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдереЛрдбрд╝рд╛ рдХрдо рдХрд░ рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрджрд┐ рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд╕рд┐рд░реНрдл рд╕рд┐рдореНрд▓рд┐рдВрдХ рд╣реИ рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдпрд╛рд▓реНрдХ рдХреЗ рд╕рд╛рде рд╣рдо рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ yalc рдлреЛрд▓реНрдбрд░ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╛рд╣рд░реА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЙрд╕ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ yalc рдлреЛрд▓реНрдбрд░ рд╕реЗ node_modules рдореЗрдВ рд╕рд┐рдорд▓рд┐рдВрдХ рдмрдирд╛рддрд╛ рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рд╕реБрд░рд╛рдЧ рджреЗрддрд╛ рд╣реИред

@ezolenko рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рдереА рдФрд░ рдЗрд╕рдХрд╛ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рдпрд╛ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдореНрд▓рд┐рдВрдХред
рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╣реА рдХрдореА рд╣реИ, рдпрд╛ рдЗрд╕рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛрд╕рди рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рд╕рд┐рдореНрд▓рд┐рдВрдХ рд╕реАрдбрдмреНрд▓реНрдпреВрдбреА рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рдлрд╛рдЗрд▓ рдХреЛ рд╣рд▓ рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдореИрдВрдиреЗ рдмрд╕ рдЕрдкрдиреА рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЛ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреА package.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдпрд╣рд╛рдВ рдПрдХ рд╣реА рдкреГрд╖реНрда рдкрд░ рд╣реИрдВред

резрепрек

@PavaniVaka @TerenceZ @thealjey рдкреНрд░рдЬрдирди рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореМрдХрд╛?

@ezolenko https://github.com/moki/mokui рдПрдХ рд╣реИред

рдореИрдВрдиреЗ #194 рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдиреАрдЪреЗ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

рдЬрдм рдХреЛрдИ рдореЛрдиреЛрд░реЗрдкреЛ рдХреЗ рдЕрдВрджрд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдХреЛ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд░реЛрд▓рдЕрдк @organization/package-name рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдмрд┐рд▓реНрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдРрд╕рд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ package.json рдкрд╛рд░реНрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, dependencies рдлрд╝реАрд▓реНрдб рдХреА рдЪрд╛рдмрд┐рдпрд╛рдБ рдирд┐рдХрд╛рд▓ рд░рд╣рд╛ рд╣реВрдВ, рдлрд┐рд░ рдЙрдирдХреЗ рдЦрд┐рд▓рд╛рдл callback рдПрдХ рдХреЗ рдЕрдВрджрд░ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрд▓рдЕрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ external рдлрд╝реАрд▓реНрдб рдХреЗ рдЕрдВрджрд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ред

import json from "rollup-plugin-json";

const pkg = process.env.LERNA_PACKAGE_NAME &&
          require(`${process.env.LERNA_PACKAGE_NAME}/package.json`);

const dependencies = ({ dependencies }) => Object.keys(dependencies || {});

const pkgdependencies = dependencies(pkg);

/* exported rollup configuration */
const config = {
    /* your config goes here... */
    /* id is the source name if list of dependencies includes
     * id source name, then mark it as external,
     */
    external: id => pkgdependencies.includes(id)
};

export default config;

рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдФрд░ rollup-plugin-typescript рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рд╕рдорд╕реНрдпрд╛ рддрдм рднреА рд╣реЛрддреА рд╣реИ рдЬрдм рд╕реНрд░реЛрдд рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рд╕реА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рд╣реЛрддреА рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛:

core/core-client/src/api.ts
myapp/myapp-client/src/api.ts
myapp/myapp-app/src/domain/api.ts -> ../../../myapp-client/src/domain/api.ts
myapp/myapp-app/src/domain/core -> ../../../../core/core-client/src/domain/
...

рдЬрдм рдореИрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ myapp/myapp-app рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ,
рдиреАрдЪреЗ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд░реЛрд▓рдЕрдк рд╢рд┐рдХрд╛рдпрдд:

[ ERROR ]  Rollup: Parse Error: ../myapp-client/src/domain/api.ts:28:7
           Unexpected token (Note that you need plugins to import files that are not JavaScript)

     L28:  export interface IPrimus extends Primus {

interface рд╢рдмреНрдж рдХреЗ рд╕рд╛рде рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛

рдореЗрд░рд╛ рдХрд╛рдордХрд╛рдЬ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирд▓рд┐рдВрдХ рдХрд░рдиреЗ рдФрд░ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирдкреАрдПрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░реА/рдкреЛрд╕реНрдЯ рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ ...
рддреЛ рдореЗрд░рд╛ рдЖрдИрдбреАрдИ рджреЗрд╡ рдХреЗ рджреМрд░рд╛рди рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рд╕рдВрдХрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

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

kyle-johnson picture kyle-johnson  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

brandon-leapyear picture brandon-leapyear  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alshdavid picture alshdavid  ┬╖  16рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alireza-salemian picture alireza-salemian  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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