Moment: moment.js์˜ NPM ํŒจํ‚ค์ง€ ํฌ๊ธฐ๊ฐ€ ๊ท€์ฐฎ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 08์›” 17์ผ  ยท  26์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: moment/moment

๋‚ด ./node_modules ํด๋”์˜ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ–ˆ๋Š”๋ฐ moment.js๊ฐ€ ๊ฐ€์žฅ ๋ฌด๊ฑฐ์šด ๋น„ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 2.1MB ๋Š” ๊ฝค ๋งŽ์Šต๋‹ˆ๋‹ค. ํด๋” ํฌ๊ธฐ๋ฅผ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://gyazo.com/60cb5b6e69c76767c6d001669ff25a2d

๋Œ€๋ถ€๋ถ„์˜ ๋ฌด๊ฒŒ๋Š” npm ์™€ ํ•จ๊ป˜ moment.js์˜ ์••์ถ• ๋ฒ„์ „์„ ๊ฒŒ์‹œํ•˜๊ณ  ๋ชจ๋“  ๋กœ์ผ€์ผ์„ ์ด์ค‘ ๊ฒŒ์‹œํ•˜๋Š” ๋ฐ์„œ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋กœ์ผ€์ผ ์ž์ฒด๋งŒ์œผ๋กœ๋„ ์ƒ๋‹นํžˆ ๋ฌด๊ฒ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‚˜๋Š” moment.js์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ด ์–‘์„ ์ค„์ด๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค!

  • [ ] ./src ํด๋”๊ฐ€ npm ์— ๊ฒŒ์‹œ๋˜๋Š” ๊ฒƒ์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  • [ ] ./min ํด๋”๊ฐ€ npm ์— ๊ฒŒ์‹œ๋˜๋Š” ๊ฒƒ์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  • [ ] ./locales ํด๋”๋ฅผ ๋ณ„๋„์˜ npm ํŒจํ‚ค์ง€๋กœ ์ด๋™ํ•˜์—ฌ ๋ชจ๋ฉ˜ํŠธ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?
BuilRelease

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ผ๋ฐ˜์ ์ธ ํ•ฉ์˜๋Š” ๋…ธ๋“œ ์•ฑ์˜ ๋””์Šคํฌ ๊ณต๊ฐ„์ด ๋ธŒ๋ผ์šฐ์ €์— ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ”„๋ฆฌ๋ฏธ์—„์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋งˆ์Œ๊ฐ€์ง์œผ๋กœ ์ข‹์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

screen shot 2018-08-01 at 11 16 23 am

์‚ฌ๋žŒ๋“ค์ด ๋ฒˆ๋“ค ํฌ๊ธฐ๊ฐ€ ์‹ค์ œ ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ์ด์— ๋Œ€ํ•ด ์•„๋ฌด ์กฐ์น˜๋„ ์ทจํ•˜์ง€ ์•Š๊ธฐ๋กœ ์„ ํƒํ•˜๋Š” ์ˆœ๊ฐ„ moment ๋Š” ์ฃฝ์Šต๋‹ˆ๋‹ค.
๊ฐ€๋ฒผ์šด ๋Œ€์•ˆ์„ ์ฐพ๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด date-fns ๊ฐ€ ํƒ์›”ํ•œ ์„ ํƒ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์‚ฌ๋žŒ๋“ค์€ ๋ชจ๋ฉ˜ํŠธ๋ฅผ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๋…ธ๋“œ ์•ฑ์˜ ๋””์Šคํฌ ๊ณต๊ฐ„์€ ๋ธŒ๋ผ์šฐ์ €์— ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํ”„๋ฆฌ๋ฏธ์—„์ด ์•„๋‹ˆ๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, min ํด๋”์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์ •ํ™•ํžˆ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

image

์™œ npm์—์„œ moment-with-locales.min.js ๊ฐ€ ํ•„์š”ํ•œ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. moment.min.js ์™€ locales.min.js ์ด๋ฉด ์ถฉ๋ถ„ํ•˜๊ฒ ์ฃ ?

๋˜ํ•œ min ํด๋”( locale.js ๋ฐ moment-with-locales.js )์— ์ตœ์†Œํ™”๋˜์ง€ ์•Š์€ ํŒŒ์ผ์ด ํ•„์š”ํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

min ํด๋”์˜ ์ด๋ฆ„์ด ์ •๋ง ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ๊ฐ€ ๋” ๋‚˜์€ ์ด๋ฆ„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๋ฆด๋ฆฌ์Šค๋ฅผ ์œ„ํ•ด ์—…๋ฐ์ดํŠธ ์ธ๋ฑ์Šค ๊ทธ๋ŸฐํŠธ ์ž‘์—…์„ ์‹คํ–‰ํ•  ๋•Œ๊นŒ์ง€ moment-with-locales ๋ฐ locales ํŒŒ์ผ์ด ์žˆ๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ํ™•์‹คํžˆ npm์—์„œ moment-with-locales ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๊ฒƒ์ด ์ œ๊ณตํ•˜๋Š” ๊ฐ€์น˜๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@martinheidegger ์–ด๋–ค ์กฐ๊ฑด์—์„œ ์ „์ฒด ํŒจํ‚ค์ง€์˜ ํฌ๊ธฐ๊ฐ€ ๋ฌธ์ œ์ธ์ง€ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์‚ฌ๋žŒ๋“ค์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋” ๋งŽ์€ ์˜ต์…˜์„ ์›ํ•จ์— ๋”ฐ๋ผ ํŒจํ‚ค์ง€๊ฐ€ ์ปค์ง‘๋‹ˆ๋‹ค. ๊ท€ํ•˜๊ฐ€ ๋‚˜์—ดํ•œ ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ์–ด๋–ค ๋ฉด์—์„œ ์ตœ์†Œํ•œ์˜ ๋ณ„๋„ ํŒจํ‚ค์ง€๋ฅผ ๊ฒŒ์‹œํ•œ ๋‹ค์Œ ๋ชจ๋“  ๊ฒƒ์„ ํฌํ•จํ•˜๋Š” ํฐ ํŒจํ‚ค์ง€๋„ ๊ฒŒ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

npm ๋นŒ๋“œ์˜ ์ผ๋ถ€/์ „์ฒด์—์„œ ๋ชจ๋“  ๊ฒƒ์„ ์ตœ์†Œํ•œ์œผ๋กœ ์ค„์ด๋Š” ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์˜ˆ๋ฅผ ๋“ค์–ด์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ถ•์†Œ ๋œ ๋ฐ˜๋ฉด NPM lodash์˜ ์„ค์น˜ํ•˜๋ฉด ๋‹จ์ง€ _71 KB_์˜ 1.4 MB์ž…๋‹ˆ๋‹ค
lodash๊ฐ€ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ž์ฒด ํŒจํ‚ค์ง€๋กœ ๊ฒŒ์‹œํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์€ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์—์„œ ์ฐธ์กฐ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์‹œ ์„ค์น˜๋˜๋Š” ๊ธด ํŒจํ‚ค์ง€ ๋ชฉ๋ก์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.
ํฌ๊ธฐ๊ฐ€ ์•ฝ 300MB์ธ ์ผ๋ฐ˜์ ์ธ node_modules ํด๋”๋ฅผ ๋ณด๋ฉด moment.js๋ฅผ ์กฐ๊ธˆ ๋” ์ž‘๊ฒŒ ๋งŒ๋“ค ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ›จ์”ฌ ๋” ํฌ๊ณ  ํ›จ์”ฌ ๋” ํฐ ์ด๋ฒคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๊ทธ ์ค‘ ์ผ๋ถ€์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

  • ์ˆ˜์‹ : 6,6MB
  • rxjs: 3.3MB
  • @๊ฐ๋„ :
  • ๊ตญ์ œ: 79.1MB
  • ๊ทธ๋ŸฐํŠธ: 6.2MB

npm ํŒจํ‚ค์ง€์˜ ํฌ๊ธฐ๋Š” ๋ณ„๋กœ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์ง€๋งŒ ์ •์ƒ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์กฐ์ž‘๋œ ๋‚ ์งœ์— ๋Œ€ํ•ด 58KB๋ฅผ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์ด ๋†€๋ž์Šต๋‹ˆ๋‹ค(๋” ๋ฌด๊ฑฐ์šด ๋กœ์บ˜์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ๊ฐ€์ •) ๐Ÿ˜ž

๋‚˜๋Š” ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๋…ผ์Ÿ์— ์ง€์ณค๋‹ค. ์„ค์น˜ ๊ณต๊ฐ„์ด ์ ์œผ๋ฉด ํŒจํ‚ค์ง€๋ฅผ ๋” ๋นจ๋ฆฌ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค(๊ฐ€์žฅ ํฐ ์ˆœ๊ฐ„). ํ’์ฐจ์— ๋งž์„œ๋Š” ๊ฒƒ ๊ฐ™์•„์š”. ๊ทธ๋ž˜์„œ: kthxbye.

@martinheidegger ๋Š” ์›์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค. ์ ์–ด๋„ npm๋ณด๋‹ค ์ œ์ •์‹ ์ด๊ณ  ํŒจํ‚ค์ง€๋ฅผ ์บ์‹œํ•˜๋ฏ€๋กœ ๋‹ค์šด๋กœ๋“œ์— ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. :)

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉด ํ•ด์žˆ๋‹ค. import moment from 'moment'; ํ•˜๋ฉด ๋ฒˆ๋“ค ํฌ๊ธฐ๊ฐ€ 30kb์—์„œ 250kb๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค!!! ์‰ฌ์šด ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@ paramsingh88 ์œ ์ผํ•œ ์˜ต์…˜์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. moment.unix(created).format('MMMM D, YYYY') ํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ํฌ๊ธฐ๊ฐ€ 58kB ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์™„์ „ ๋ฏธ์ณค์–ด!

๋‚˜๋Š” ์ด๋Ÿฐ ํƒœ๋„๊ฐ€ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.

๋…ธ๋“œ ์•ฑ์˜ ๋””์Šคํฌ ๊ณต๊ฐ„์€ ๋ธŒ๋ผ์šฐ์ €์— ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ”„๋ฆฌ๋ฏธ์—„์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ์ˆœ๊ฐ„์ด ๋…ธ๋“œ ์•ฑ์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ํ”„๋ก ํŠธ์—”๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” Moment.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๋‚ ์งœ๋ฅผ ๊ฒ€์ฆํ•œ ํ›„ ๋ฐฑ์—”๋“œ(์ž์ฒด์ ์œผ๋กœ ๋ณ„๋„์˜ ๊ฒ€์ฆ์ด ์žˆ์Œ)๋กœ ๋‚ ์งœ๋ฅผ ์ „์†กํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋กœ์บ˜์ด ์—†๋Š” ์ˆœ๊ฐ„์˜ ํฌ๊ธฐ๋Š” 50k(์ถ•์†Œ)์ด๊ณ  ๋กœ์บ˜์ด ์žˆ๋Š” ํฌ๊ธฐ๋Š” ์•ฝ 300k(์ถ•์†Œ)์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋ญ”๊ฐ€๋ฅผ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด https://github.com/moment/moment/issues/2373 ์—์„œ ํ† ๋ก ์„ ํ™•์ธ

ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋‚˜ ์‚ถ์„ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ๊ฐ€์ ธ์˜ค์‹ญ์‹œ์˜ค.

๋ฏธ์•ˆ ๋‚ด ์‹ค์ˆ˜. (ํŽธ์ง‘๋จ)

์ผ๋ฐ˜์ ์ธ ํ•ฉ์˜๋Š” ๋…ธ๋“œ ์•ฑ์˜ ๋””์Šคํฌ ๊ณต๊ฐ„์ด ๋ธŒ๋ผ์šฐ์ €์— ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ”„๋ฆฌ๋ฏธ์—„์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋งˆ์Œ๊ฐ€์ง์œผ๋กœ ์ข‹์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

screen shot 2018-08-01 at 11 16 23 am

์‚ฌ๋žŒ๋“ค์ด ๋ฒˆ๋“ค ํฌ๊ธฐ๊ฐ€ ์‹ค์ œ ๋ฌธ์ œ๋ผ๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ์ด์— ๋Œ€ํ•ด ์•„๋ฌด ์กฐ์น˜๋„ ์ทจํ•˜์ง€ ์•Š๊ธฐ๋กœ ์„ ํƒํ•˜๋Š” ์ˆœ๊ฐ„ moment ๋Š” ์ฃฝ์Šต๋‹ˆ๋‹ค.
๊ฐ€๋ฒผ์šด ๋Œ€์•ˆ์„ ์ฐพ๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด date-fns ๊ฐ€ ํƒ์›”ํ•œ ์„ ํƒ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, npm ์ˆœ๊ฐ„์€ ์•ฝ 3mb์ด์ง€๋งŒ ์ด๋Š” ๋žŒ๋‹ค ํŽธ์ง‘ ์ธ๋ผ์ธ ๋„๊ตฌ์˜ ํฌ๊ธฐ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ถ•์†Œ๋Š” ํ™•์‹คํžˆ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค

gzipped Angular ์•ฑ์—์„œ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ด ์ž‘์€ ๋ฒˆ๋“ค ํฌ๊ธฐ์˜ 70%๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ „์ฒด ํŒจํ‚ค์ง€๋ฅผ import * as moment from 'moment' ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ธฐ๋Šฅ์„ ์ œ์™ธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

moment.js๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Angular ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฃผ์š” ๋ถ€๋ถ„ ํฌ๊ธฐ๋ฅผ ๋‘ ๋ฐฐ๋กœ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.

image

์ด๊ฒƒ์€ ๋ชจ๋ฐ”์ผ ์žฅ์น˜์—์„œ ์ •๋ง ์•„ํ”„๋‹ค.

@silentsnooc ๋Ÿฐํƒ€์ž„์— ํ•„์š”ํ•œ ๋กœ์ผ€์ผ๋งŒ ๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฃผ์š” ๊ด€์‹ฌ์‚ฌ๋Š” ๋กœ์ผ€์ผ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ์ง€์—ฐ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@kylekatarnls ๋ฒˆ๋“ค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ์ฃผ์‹œ๋ฉด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”.

๋ฌธ์„œ์— ์ œ๊ณต๋œ JSPM์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://momentjs.com/docs/#/i18n/loading -into-browser/

webpack์—์„œ๋„ ์ž‘๋™ํ•˜๋ฉฐ ๋‹ค๋ฅธ ๋ฒˆ๋“ค๋Ÿฌ์—์„œ๋„ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์‹œ๋„ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์ด ๋Œ“๊ธ€์—๋Š” ์ข‹์•„์š”๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
https://github.com/moment/moment/issues/2517#issuecomment -185836313

๋‚˜๋Š” moment.js๊ฐ€ ๋ธŒ๋ผ์šฐ์ € ํ”„๋ก ํŠธ ์—”๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋„๋ก ์˜๋„๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌ์ž๋กœ๋ถ€ํ„ฐ ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ณ„ํš์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋น„์Šทํ•œ ๋ฌธ์ œ์— ๋ถ€๋”ช์ณค์„ ๋•Œ ์šฐ๋ฆฌ๋Š” ํ”„๋ก ํŠธ ์—”๋“œ์—์„œ date-fns ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋ฐฑ์—”๋“œ์—์„œ moment.js๋ฅผ ์œ ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ ์–‘์ชฝ ๋์—์„œ date-fns ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

@demisx ๋” ๋ณผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

image

ํžŒํŠธ๋ฅผ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. :+1: ๋จผ์ € ์–ธ๊ธ‰ํ•œ @xinghul ์—๊ฒŒ๋„ thx.

moment.js ์˜ ๋Œ€์•ˆ์ธ ๋” ์ž‘์€ ํฌ๊ธฐ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.

https://github.com/iamkun/dayjs

momentjs๋ฅผ dayjs๋กœ ๊ต์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ชฉ์ ์— ์ž˜ ๋งž๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฉฐ ๋กœ์ผ€์ผ๊ณผ fromNow ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•ฝ 15Kb์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. ํ™˜์ƒ์ ์ด๋‹ค.

Ionic 4/Angular 8 ์•ฑ ๋ฒˆ๋“ค ํฌ๊ธฐ ์ฐจ์ด:

momentJS : ์ถ”๊ฐ€ = 204 KB

dayJS : ์ถ”๊ฐ€ = 6 KB

๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ/์‹œ๊ฐ„ ํ˜•์‹ ๋ฐ ์กฐ์ž‘๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” dayJS ๋กœ ๊ฐ€๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค : https://github.com/iamkun/dayjs

Screen Shot 2020-05-15 at 11 45 16 am

๋‚˜๋Š” ๋˜ํ•œ 249kb๋ฅผ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต๋™ ์ž‘์—…์ž๊ฐ€ ์ด์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ํ•  ๊ฒƒ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.. date.fns๋กœ ์ด๋™

์‹œ๋„ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์ด ๋Œ“๊ธ€์—๋Š” ์ข‹์•„์š”๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
#2517(๋Œ“๊ธ€)

์ด๊ฒƒ์€ ๋น ๋ฅธ ์ตœ์ ํ™”๋ฅผ ์ฐพ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ์ˆœ๊ฐ„์ด 654.7kB์—์„œ 178.4kB๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ํด ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํ•จ์ˆ˜๋ฅผ date-fns๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

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