조회 : 91
1. 현재 JS의 생태계는 웹브라우저와 nodejs 로 양분되어있음
2. 문제는 nodejs 가 CommonJs 라고 불리는 모듈 방식으로 js파일 불러오는데, JS 공식에서 ESM(ES Modules) 이라고 불리는 방식을 공식으로 사용한다고 스펙 발표하고 적용 해버림.
2.1. 이 둘은 문법에 차이가 있고 로드하는 방식에서도 차이가 있음.
3. 문제는 npm 에 올라가있는 많은 요소들이 commonjs 형식으로 만들어져있음. 즉, 가져와서 바로 웹에 쓰기가.. 음음..
4. nodejs 도 esm 방식 지원함! nodejs에서는 commonjs 로 된것도 esm 사용환경에서 읽어와짐. 웹에선 안되니깐 문제...
4.1. nodejs 에서 esm 파일의 기본 확장자 mjs 가 esm.. 인데 package.json 에 type:'module' 처럼 적어서 기본 동작을 esm 으로 바꿀 수 있음.
4.2. 확장자 mjs는 필수가 아님. nodejs 에서 알아서 처리해준다는 것 뿐이지 그냥 js 확장자도 사용가능함.
5. 요즘 나오는 npm 의 라이브러리는 ems, cjs(commonjs) 를 같이 지원하는 경우가 많아짐(심지어 브라우저용 js도 포함하는 경우가 있음)
6. node에서는 package.json 의 설정으로 읽어오는 js를 제어할 수 있음.(expots 항목)
6.1. 브라우저에서는 package.json 을 안 읽기 때문에 의미가 없지만, 꼭 의미 없는 것도 아닌것이 webpack 같은 프로그램이 package.json 의 값을 참고해서 동작할 수 있음.
6.2. https://dev.to/snyk/building-an-npm-package-compatible-with-esm-and-cjs-in-2024-88m 참고
뭐뭐뭐 그렇다구.
제목 | 작성자 | 날짜 |
---|---|---|
공대여자 | ||
공대여자 | ||
mins01 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 | ||
공대여자 |