Rollup-plugin-typescript2: Monorepo: rpt2๊ฐ€ ํฌํ•จ๋œ ๋กค์—… -w๋Š” (ํ”Œ๋Ÿฌ๊ทธ์ธ rpt2) ์˜ค๋ฅ˜: ์†Œ์Šค ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 03์›” 11์ผ  ยท  2์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ezolenko/rollup-plugin-typescript2

๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์™œ ๊ทธ๊ฒƒ์ด ์ž˜๋ชป ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

์ผ๋ฐ˜์ ์ธ ์ผํšŒ์„ฑ ๋นŒ๋“œ๋Š” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ rollup -w ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜์—์„œ ๋” ๊นŠ์€ ๋ชจ๋“ˆ ์ข…์†์„ฑ ์ค‘ ํ•˜๋‚˜๋ฅผ ํŽธ์ง‘ํ•˜๋ฉด rpt2๊ฐ€ ์†Œ์Šค ํŒŒ์ผ์„ ์ฐพ๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ Lerna monorepo๊ฐ€ โ€‹โ€‹๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋‚ด ์ข…์†์„ฑ์— ๋Œ€ํ•œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์ €์žฅ์†Œ: https://github.com/jrburke/jr-monorepo-rpt2

preserveSymlinks ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€๊ฐ€ ๊ณตํ†ต ์ข…์†์„ฑ์„ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ข… ๋นŒ๋“œ ํ”„๋กœ์ ํŠธ์—์„œ ๋ชจ๋“ˆ์ด ์ค‘๋ณต๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. preserveSymlinks ์‚ฌ์šฉํ•˜์—ฌ ๋ฒ„์ „์„ ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ์ตœํ›„์˜ ์ˆ˜๋‹จ์œผ๋กœ preserveSymlinks ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ ์„ค์ •์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋…๋ฆฝ ์‹คํ–‰ํ˜•/์ตœ์ดˆ ๋นŒ๋“œ๋Š” ๊ทธ๊ฒƒ ์—†์ด ์ž‘๋™ํ•˜๋ฉฐ ๊ณ„์† ์œ ์ง€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์‹œ๊ณ„ ์„ค์ •์€ ์ผ๋ฐ˜ ๋นŒ๋“œ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ

์œ„์˜ ์˜ˆ์ œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์žฌํ˜„ํ•  ์„ธ๋ถ€์ •๋ณด์ž…๋‹ˆ๋‹ค.

๋ฒ„์ „

  • ํƒ€์ดํ”„์Šคํฌ๋ฆฝํŠธ: 3.8.3
  • ๋กค์—…: 1.32.1
  • ๋กค์—… ํ”Œ๋Ÿฌ๊ทธ์ธ ์œ ํ˜• ์Šคํฌ๋ฆฝํŠธ2: 0.26.0

๋กค์—….config.js

import commonjs from '@rollup/plugin-commonjs';
import resolve from '@rollup/plugin-node-resolve';
import typescript from 'rollup-plugin-typescript2';

export default {
  input: 'src/index.ts',
  output: {
    file: 'dist/jr-player.js',
    format: 'iife',
    name: 'jrPlayer',
    exports: 'named'
  },
  watch: {
    include: ['src/**', '../jr-lib/src/**', '../jr-auth/src/**']
  },
  plugins: [
    typescript({
      include: ['src/**/*.ts+(|x)', '../jr-lib/**/*.ts+(|x)', '../jr-auth/**/*.ts+(|x)'],
      verbosity: 3
    }),
    resolve(),
    commonjs()
  ]
};

tsconfig.json

์ตœ์ƒ์œ„ tsconfig.json:

{
  "compilerOptions": {
    "moduleResolution": "node",
    "module": "es2015",
    "lib": [
      "es2015",
      "es2016",
      "es2017",
      "dom"
    ],
    "strict": true,
    "sourceMap": true,
    "declaration": true,
    "allowSyntheticDefaultImports": true,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "noImplicitAny": false,
    "esModuleInterop": true,
    "removeComments": true,
    "resolveJsonModule": true,
    "skipLibCheck": true
  }
}

packages/jr-player/tsconfig.json :

{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "target": "es5",
    "declarationDir": "lib",
    "outDir": "lib"
  },
  "include": ["."]
}

ํŒจํ‚ค์ง€.json

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์ง€๋งŒ ํ…Œ์ŠคํŠธ ์ €์žฅ์†Œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ์„ธ๋„ 3์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ถœ๋ ฅ

์ฒจ๋ถ€๋˜์—ˆ์ง€๋งŒ verbose-error.txt ํ…Œ์ŠคํŠธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ์˜ค๋ฅ˜.txt

๋ชจ๋“  2 ๋Œ“๊ธ€

#188๊ณผ ๊ด€๋ จ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ check: false typechecking์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์ด ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค...

rollup-plugin-typescript2 ๋ฐ rollup-plugin-postcss ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. _css_ ํŒŒ์ผ(์˜ˆ: import * as style from ./mystyle.css )์„ ๊ฐ€์ ธ์˜ค๊ณ  _watch_ ํ”Œ๋ž˜๊ทธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋””๋ฒ„๊ทธ๋ฅผ ์กฐ๊ธˆ ๋” ์‹œ๋„ํ•˜๊ฒ ์ง€๋งŒ ์‹ค์ œ๋กœ check: false ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰