Jun 개발노트

JS module 사용하기

2020-04-03

Vanilla JS

  1. 정의

    • export 문은 JavaScript 모듈에서 함수, 객체, 원시 값을 내보낼 때 사용합니다. 내보낸 값은 다른 프로그램에서 import 문으로 가져가 사용할 수 있습니다.
    • 내보내는 모듈은 "use strict"의 존재 유무와 상관없이 무조건 엄격 모드입니다. export 문을 HTML 안에 작성한 스크립트에서는 사용할 수 없습니다.
  2. export 종류

    • named
    // 먼저 선언한 식별자 내보내기
    export { myFunction, myVariable };
    
    // 각각의 식별자 내보내기
    // (변수, 상수, 함수, 클래스)
    export let myVariable = Math.sqrt(2);
    export function myFunction() { ... };
    
    • default
    // 먼저 선언한 식별자 내보내기
    export { myFunction as default };
    
    // 각각의 식별자 내보내기
    export default function () { ... };
    export default class { ... }
    
  3. import

    import { name, draw, reportArea, reportPerimeter } from './modules/square.js';
    
    import { name as circleName,
            draw as drawCircle,
            reportArea as reportCircleArea,
            reportPerimeter as reportCirclePerimeter } from './modules/circle.js';
    
    import * as Module from './modules/module.js';
    

Common JS

  1. exporting : exports 와 module.exports 가 같은 객체를 참조한다

    // greetings.js
    var exports = module.exports = {};
    
    // 첫번째 방법
    exports.sayHelloInEnglish = function() {
    return "HELLO";
    };
    
    exports.sayHelloInSpanish = function() {
        return "Hola";
    };
    
    
    // 두번째 방법
    module.exports = {
        sayHelloInEnglish: function() {
            return "HELLO";
        },
    
        sayHelloInSpanish: function() {
            return "Hola";
        }
    };  
    
    
    
  2. require

    var require = function(path) {
    
    // ...
    
    return module.exports;
    };