Node.js 에 ES 모듈 적용

node.js 에서 import/export 를 사용하려면 설정이 추가로 필요하다

sitemap 을 분석해서 사용하려고 sitemapper 를 사용하는데
import 구문이 오류가 난다

이유는 모듈 사용에 대해서 설정해주지 않으면 CommonJS 만 사용가능하다

index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import Sitemapper from 'sitemapper';

(async () => {
const Google = new Sitemapper({
url: 'https://www.google.com/work/sitemap.xml',
timeout: 15000, // 15 seconds
});

try {
const { sites } = await Google.fetch();
console.log(sites);
} catch (error) {
console.log(error);
}
})();

Node.js 에 ES 모듈 적용

package.jsontype: module 을 설정해서 모듈을 사용할 수 있게 해주면 된다.

Node 13 버전 이상에서는 type 설정으로 import/export 를 사용할 수 있다

package.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// "type": "module", 을 추가하면 된다
{
"name": "blog-sitemap",
"version": "1.0.0",
"description": "",
"main": "src/index.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"sitemapper": "^3.1.12"
},
"devDependencies": {
"eslint": "^7.26.0"
}
}

실행

실행하면 오류 없이 실행되는 걸 확인할 수 있다

1
node src/index.js