๊ธฐ๋ฅ ์ ์์ฒญํ๊ฑฐ๋ ๋ฒ๊ทธ๋ฅผ ๋ณด๊ณ ํ์๊ฒ ์ต๋๊น?
ํน์ง
ํ์ฌ ํ๋์ ๋ฌด์์ ๋๊น?
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ CommonJS ๋ชจ๋๋ก ๋ ธ์ถ๋ฉ๋๋ค.
์์๋๋ ๋์์ ๋ฌด์์ ๋๊น?
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ES6 ๋ชจ๋๋ก ๋ ธ์ถ๋ฉ๋๋ค.
๋ด๊ฐ ์ ์ด ํ๋์ ์ํ๋๊ฐ?
์ ๊ธฐ๋ฅ์ ์ถ์ํ ํ ์ฒ์ ๋ฉฐ์น ๋์๋ง raven-js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ์ํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ด ์ฑ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด 20KB raven-js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๊ณ ์ถ์ต๋๋ค.
20KB raven-js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด webpack "es6-tree-shaking/uglify-js-dead-code-removal" ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
import { Raven, RavenVue } from './es6/raven';
if (FLAGS.SENTRY_ENABLE) {
Raven.config(CONFIG.SENTRY_DSN).addPlugin(RavenVue, Vue).install();
}
์ด๊ฒ์ ES6 ๋ชจ๋์ ์ฌ์ฉํ ๋๋ง ๊ฐ๋ฅํฉ๋๋ค.
es ๋ชจ๋๋ก ์ ํํ ๊ณํ์ด ์์ต๋๊น? PR์ ์๋ฝํ์๊ฒ ์ต๋๊น?
ํผ๋๋ฐฑ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์ ์๋ ์๋ฃจ์ ์ ํ ๊ฐ์ง ๊ฐ์ ์ฌํญ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์์ค ์ฝ๋ ES6์ ์์
๊ณผ ์์ถ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์ฌ์ฉํ ์ module
์ ์ฃผ์ package.json
ํจํค์ง์ ES6 ์ฃผ์ ์ง์
์ ์ ์ฐธ์กฐํ๋ { "module": "src/raven.js" }
. ์ฐธ์กฐ: https://github.com/rollup/rollup/wiki/pkg.module
๊ทธ๋ ๊ฒ ํ๋ฉด main
ํค๋ { "main": "dist/raven.js" }
ํจํค์ง์ ๋ฒ๋ค๋ CommonJS ํธํ ๋ฒ์ ์ ๊ณ์ ์ฐธ์กฐํ ์ ์์ง๋ง webpack ๋๋ ๋กค์
๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. import Raven from 'raven-js'
ํ์ผ์ ES6 ๋ฒ์ ์ผ๋ก ์๋ ํด๊ฒฐ๋ฉ๋๋ค.
์กฐ๋ง๊ฐ ๊ผญ ํด๋ณด๊ณ ์ถ์ ์ผ์
๋๋ค.
๊ทธ๋ฌ๋ ์นํฉ/๋กค์
์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๊ณ ์ฐ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ๋ฒ๋ค์ด ์ฌ์ ํ 10kb ์์ฐ์ ์ด๊ณผํ์ง ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
๋ค๋ฅธ ์์
๋ ์งํ ์ค์ด๊ธฐ ๋๋ฌธ์ ์ธ์ ๋ฐฐ์ก๋ ์ง ๋ง์๋๋ฆด ์ ์์ต๋๋ค.
@kamilogorek ์ ๋ ํญ์
์ด๊ฒ์ ์์ค๋ฅผ ES ๋ชจ๋๋ก ๋ณํํ๋ ๋ฐ ํ์ํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ ๋๋ค.
์ด PR์ ๊ฒํ ํ ์ ์๋ค๋ฉด ๋ฉ์ง ๊ฒ์ ๋๋ค. :์ฅํ ์บฃ:
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์กฐ๋ง๊ฐ ๊ผญ ํด๋ณด๊ณ ์ถ์ ์ผ์ ๋๋ค.
๊ทธ๋ฌ๋ ์นํฉ/๋กค์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ ์ฐ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ๋ฒ๋ค์ด ์ฌ์ ํ 10kb ์์ฐ์ ์ด๊ณผํ์ง ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
๋ค๋ฅธ ์์ ๋ ์งํ ์ค์ด๊ธฐ ๋๋ฌธ์ ์ธ์ ๋ฐฐ์ก๋ ์ง ๋ง์๋๋ฆด ์ ์์ต๋๋ค.