[๐Ÿ’ก] module system

๊ณ ์„์ง„
2 min readJan 15, 2021

--

๐Ÿ’ก

CJS (Common JS)

  • require(<path>)
  • Node JS ๋Š” ๊ธฐ๋ณธ์œผ๋กœ Common JS ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ชจ๋“ˆ์„ ๋™๊ธฐ์ ์œผ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๊ฐ€์ ธ์˜จ ๋ชจ๋“ˆ์˜ ๋ณต์‚ฌ๋ณธ์„ ์ œ๊ณตํ•œ๋‹ค.
const jQuery = require('jQuery')

AMD (Asynchronous Module Definition)

  • AMD ๋Š” ๋ชจ๋“ˆ์„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•œ๋‹ค.
define(["jquery"], function ($) {
return function() {}
});

UMD (Universal Module Definition)

  • ๋ธŒ๋ผ์šฐ์ €์™€ Node ๊ธฐ๋ฐ˜์—์„œ ๋ชจ๋‘ ๋™์ž‘ํ•œ๋‹ค.
  • ์ŠคํŽ™์ด์•„๋‹Œ ์ฝ”๋“œ ์ž‘์„ฑ ํŒจํ„ด์ด๋‹ค.
(function (root, factory) {
if (typeof define === "function" && define.amd) { // amd
define(["jquery", "underscore"], factory);
} else if (typeof exports === "object") { // common js
module.exports = factory(require("jquery"), require("underscore"));
} else { // browser
root.Requester = factory(root.$, root._);
}
}(this, function ($, _) {
// this is where I defined my module implementation

var Requester = { // ... };

return Requester;
}));

ESM (ES Modules)

  • ES ํ‘œ์ค€ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ
  • ๊ฐ„๋‹จํ•œ ๊ตฌ๋ฌธ
  • ๋น„๋™๊ธฐ์‹์œผ๋กœ ๋™์ž‘
  • ์ •์  ๋ชจ๋“ˆ ๊ตฌ์กฐ๋กœ ์ธํ•œ Tree Shakeable
import React from 'react';

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

๊ณ ์„์ง„
๊ณ ์„์ง„

Written by ๊ณ ์„์ง„

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ๋ž‘ํ•˜๋Š” ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž ์ž…๋‹ˆ๋‹ค :)

No responses yet

Write a response