๐Ÿ”Œ ํ”Œ๋Ÿฌ๊ทธ์ธ

Parcel ์€ ๋Œ€๋ถ€๋ถ„์˜ ๋„๊ตฌ๋“ค๊ณผ๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ทจํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€์ ์ธ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜๋‚˜ ์„ค์ • ์—†์ด ๋‹ค์–‘ํ•œ ์ผ๋ฐ˜์ ์ธ ํฌ๋งท์„ ์ฆ‰์‹œ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋„๋ก ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ‘œ์ค€์ ์ด์ง€ ์•Š์€ ๋ฐฉ๋ฒ•์œผ๋กœ Parcel ์„ ํ™•์žฅํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„๊ฒƒ์ด๋ฉฐ, ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•ด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์„ค์น˜๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ package.json ์˜์กด์„ฑ(dependencies)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž๋™ ๊ฐ์ง€๋˜๊ณ  ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ํŒŒ์ผ ํฌ๋งท์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € ๊ทธ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ๋„๋ฆฌ ํผ์ ธ ์žˆ๋Š”์ง€, ์–ผ๋งˆ๋‚˜ ํ‘œ์ค€์ ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ•ด๋‹น ํฌ๋งท์ด ์ถฉ๋ถ„ํžˆ ๋„๋ฆฌ ํผ์ ธ์žˆ๊ณ  ํ‘œ์ค€์ ์ด๋ผ๋ฉด, ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์น˜ํ•ด์•ผ ๋˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ณด๋‹ค๋Š” Parcel ์ฝ”์–ด์— ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜๋ฌธ์ ์ด ์žˆ๋‹ค๋ฉด GitHub์—์„œ ๋…ผ์˜ํ•ด ์ฃผ์„ธ์š”.

ํ”Œ๋Ÿฌ๊ทธ์ธ API

Parcel ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋งค์šฐ ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค. Parcel ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์‰ฝ๊ฒŒ ๋งํ•ด ์ดˆ๊ธฐํ™” ์ค‘ Parcel ์— ์˜ํ•ด ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๋‹จ์ผ ํ•จ์ˆ˜๋ฅผ ๋‚ด๋ณด๋‚ด๋Š”(export) ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” Bundler ๊ฐ์ฒด๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๊ณ  ์• ์…‹ ์œ ํ˜•๊ณผ ํŒจํ‚ค์ € ๋“ฑ๋ก๊ณผ ๊ฐ™์€ ์„ค์ •(configuration)์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

module.exports = function(bundler) {
  bundler.addAssetType('ext', require.resolve('./MyAsset'))
  bundler.addPackager('foo', require.resolve('./MyPackager'))
}

์ด ํŒจํ‚ค์ง€๋ฅผ parcel-plugin-์ ‘๋‘์–ด๋ฅผ ๋ถ™์—ฌ npm ์— ๋ฐœํ–‰ํ•˜๋ฉด, ์ด ์•„๋ž˜์—์„œ ์„ค๋ช…ํ•˜๋Š”๋ฐ” ๋Œ€๋กœ ์ž๋™์œผ๋กœ ๊ฐ์ง€๋˜๊ณ  ๋กœ๋“œ ๋ฉ๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ

Parcel ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ์€ ๋” ์ด์ƒ ์‰ฌ์šธ ์ˆ˜๊ฐ€ ์—†์„๋งŒํผ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ์ € ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์—ฌ package.json์— ์ €์žฅ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์€ parcel-plugin- ์ ‘๋‘์–ด๋ฅผ ์จ์„œ ์ด๋ฆ„์ง€์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, parcel-plugin-foo ๊ฐ™์ด์š”. ์–ด๋–ค ์˜์กด ์š”์†Œ๋ผ๋„ ์ด ์ ‘๋‘์–ด๋กœ package.json์— ๋ฆฌ์ŠคํŠธ๋˜์–ด ์žˆ์œผ๋ฉด ์ดˆ๊ธฐํ™”์ค‘์— ์ž๋™์œผ๋กœ ๋กœ๋“œ ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ์˜ ๊ฐœ์„ ์„ ๋„์™€์ฃผ์„ธ์š”

๋น ์ง„์ ์ด ์žˆ๊ฑฐ๋‚˜ ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ์›น ์‚ฌ์ดํŠธ ์ €์žฅ์†Œ์— ์ด์Šˆ๋ฅผ ์ œ๊ธฐํ•ด ์ฃผ์‹œ๊ฑฐ๋‚˜ ํŽ˜์ด์ง€๋ฅผ ์ˆ˜์ •ํ•ด ์ฃผ์„ธ์š”..