Rollup-plugin-typescript2: рд░реЛрд▓рдЕрдк-рдкреНрд▓рдЧрдЗрди-рдЙрдкрдирд╛рдо рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдорд╛рд░реНрдЪ 2018  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ezolenko/rollup-plugin-typescript2

рдореЙрдбреНрдпреВрд▓ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓

рдкрд░реНрдпрд╛рд╡рд░рдг

рдиреЛрдб v8.9.1

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

  • рдЯрд╛рдЗрдкрдкреНрд░рддрд┐: 2.7.2
  • рд░реЛрд▓рдЕрдк: 0.56.5
  • рд░реЛрд▓рдЕрдк-рдкреНрд▓рдЧрдЗрди-рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ2: 0.12.0

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

const path = require('path');

import typescript from 'rollup-plugin-typescript2';
import alias from 'rollup-plugin-alias';

export default {
    input: './src/index.ts',
    output: {
        file: 'build.js',
        format: 'umd',
        name: 'build',
    },
    plugins: [
        typescript( ),
        alias( {
            core: path.resolve( __dirname, './src/core' ),
        } ),
    ],
};

tsconfig.json

{
    "compilerOptions": {
        "target": "es2015"
    }
}

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

{
  "name": "rollup-demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "rollup -c ./rollup.config.js"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "rollup": "^0.56.5",
    "rollup-plugin-alias": "^1.4.0",
    "rollup-plugin-typescript2": "^0.12.0",
    "typescript": "^2.7.2"
  }
}

рдЯреАрдПрд╕ рдлрд╝рд╛рдЗрд▓реЗрдВ

// ./src/index.ts
import A from 'core/a';
export { A };
// ./src/core/a.ts
export default function  () {
    const x = 12;
    console.log( x );
};

рддреНрд░реБрдЯрд┐

rollup-demo/src/index.ts(1,15): semantic error TS2307 Cannot find module 'core/a'.

рдореБрд╕реАрдмрдд

рдЕрдЧрд░ рдЕрдХреЗрд▓реЗ rollup-plugin-alias рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд▓реЗрдХрд┐рди rollup-plugin-typescript2 рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рд╕рд╛рде, рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрддрд╛

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

рдореИрдВрдиреЗ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2 рдХреЗ рд╕рд╛рдордиреЗ рдЙрдкрдирд╛рдо рд╕реЗрдЯ рдХрд░реЗрдВ рдорджрдж рдирд╣реАрдВ рдХреА =(

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

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЙрдкрдирд╛рдо () рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ () рдХреЗ рд╕рд╛рдордиреЗ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА?

рдХреНрдпрд╛ рдЖрдк tsconfig рдореЗрдВ baseUrl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВ:
https://decembersoft.com/posts/say-goodbye-to-relative-paths-in-typescript-imports/

рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд▓рдЧрдЗрди рдСрд░реНрдбрд░ рдЪреАрдЬ

рдореИрдВрдиреЗ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 2 рдХреЗ рд╕рд╛рдордиреЗ рдЙрдкрдирд╛рдо рд╕реЗрдЯ рдХрд░реЗрдВ рдорджрдж рдирд╣реАрдВ рдХреА =(

@rollup/plugin-alias рдФрд░ @rollup/plugin-typescript рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
alias bebind typescript рд▓реЗ рдЬрд╛рдХрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░реЗрдВред

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

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

gluons picture gluons  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

eddow picture eddow  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

PavaniVaka picture PavaniVaka  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ