๐ฆ ํจํค์
Parcel ์์ ํจํค์
๊ฐ ๋ค์์ ์ ์
์ ํ๋์ ์ต์ข
์ถ๋ ฅ ๋ฒ๋ค๋ก ๊ฒฐํฉ์ํต๋๋ค. ์ด๊ฒ์ ๋ชจ๋ ์ ์
์ด ์ฒ๋ฆฌ๋๊ณ , ํ๋์ ๋ฒ๋ค ํธ๋ฆฌ๊ฐ ๋ง๋ค์ด ์ง ํ ์ฃผ ๊ณผ์ ์ค์ ๋ฐ์ํฉ๋๋ค. ํจํค์ ๋ ์ถ๋ ฅ ํ์ผ ์ ํ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฑ๋ก๋๊ณ , ํด๋น ์ถ๋ ฅ ํ์
์ ์์ฑํ ์ ์
์ ์ต์ข
์ถ๋ ฅ ํ์ผ์ ์ ํํ๋ฅผ ์ํด ํจํค์ ๋ก ๋ณด๋ด์ง๋๋ค.
ํจํค์ ์ธํฐํ์ด์ค
const { Packager } = require('parcel-bundler')
class MyPackager extends Packager {
async start() {
// ์ต์
. ํ์ํ๋ค๋ฉด ํ์ผ ํค๋ ์์ฑ.
await this.dest.write(header)
}
async addAsset(asset) {
// ํ์. ์ถ๋ ฅ ํ์ผ์ ์ ์
์์ฑ.
await this.dest.write(asset.generated.foo)
}
async end() {
// ์ต์
. ํ์ํ๋ค๋ฉด ํ์ผ ํธ๋ ์ผ๋ฌ ์์ฑ.
await this.dest.end(trailer)
}
}
ํจํค์ ๋ฑ๋กํ๊ธฐ
addPackager
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒ๋ค๋ฌ์ ํจํค์ ๋ฅผ ๋ฑ๋กํ ์ ์์ต๋๋ค. ์ด ๋ฉ์๋๋ ๋ฑ๋กํ๋ ค๋ ํ์ผ ์ ํ๊ณผ ํจํค์ ๋ชจ๋์ ๊ฒฝ๋ก๋ฅผ ๋ฐ์๋ค์
๋๋ค.
const Bundler = require('parcel-bundler')
let bundler = new Bundler('input.js')
bundler.addPackager('foo', require.resolve('./MyPackager'))
๋ฌธ์์ ๊ฐ์ ์ ๋์์ฃผ์ธ์
๋น ์ง์ ์ด ์๊ฑฐ๋ ๋ช ํํ์ง ์์ ๊ฒฝ์ฐ, ์น ์ฌ์ดํธ ์ ์ฅ์์ ์ด์๋ฅผ ์ ๊ธฐํด ์ฃผ์๊ฑฐ๋ ํ์ด์ง๋ฅผ ์์ ํด ์ฃผ์ธ์..