module 은 require 대신 import ~ from 을 쓰는 형식이구요
이 형식에서는 require 가 없어서 json 파일을 가져올 수 가 없군요.
이럴때에는 이런 방법이 있습니다.

import { createRequire } from "module";
const require = createRequire(import.meta.url);
const config = require("./config.json");

require 함수를 import 하는 방법입니다. ㄷㄷㄷ

대신 이 require  는 소스는 가져올 수 없습니다. 

const abc = require("./abc.js");

이런거 말이죠
import ~~ from 쓰면되니 굳이 이럴필요는 없겠지만요

json 읽을때만 사용하세요


WRITTEN BY
SIDNFT
게임개발자에서 WEBGL 웹개발자로 전환중

,




자바스크립트가 common js 에서 module 로 바뀐이유가 궁금했었는데

장점을 또하나 찾았습니다.

require -> import 차이 말고도
await 를 시작부터 사용할 수 가 있군요

// test.js - common js 방식
async function test() {}
await test(); // 이러면 에러남

모듈방식은

// test.mjs - 모듈방식
async function test() {}
await test(); // 가능함

초반에 await 호출하기위해 더미 함수를 만드는 불편함이 필요없군요
그것도 모르고 모듈방식에서 더미함수를 만들어 쓰고 있었습니다. ㅎㅎ


WRITTEN BY
SIDNFT
게임개발자에서 WEBGL 웹개발자로 전환중

,




/*
1. start 
2. end
3. abc_async 
순으로 동작하도록 짜려고함
*/

var mymodule = require('./mymodule');

console.log("start");
mymodule.abc_async();
console.log("end");

 

모듈쪽내용

/*
mymodule.js 내용
 */
async function abc_async()
{
	console.log("abc_async start");
	await sleep(1000);
	console.log("abc_async end");
}

const sleep = async (ms) => {
	return new Promise(resolve=>{
		setTimeout(resolve,ms)
	})
}

module.exports.abc_async = abc_async;
module.exports.sleep = sleep;

 

 

abc_async 내부에 딜레이가 걸리도록 sleep 을 걸어둠


WRITTEN BY
SIDNFT
게임개발자에서 WEBGL 웹개발자로 전환중

,