learning-react icon indicating copy to clipboard operation
learning-react copied to clipboard

[개정판] ES 모듈 형태 전환 후 import 안되는 상황

Open whitedoghub opened this issue 5 years ago • 2 comments

매우 잘 정리된 책으로 배우고 있습니다.

그러던 중 22장 22.4.1 기존 코드 ES Module 형태로 바꾸기에서 테스트 하던 중 오류가 발생을 했는데, 정확히 무엇이 문제인지 확인이 되지 않아 질문을 남깁니다.

node version : 13.8.0

package.json --> type: "module" 추가

src/api/posts/index.js -> 책 내용과 동일하게 작성

src/api/index.js -> 문제 없음

import Router from 'koa-router';
import posts from './posts';

const api = new Router();

api.use('/posts', posts.routes());

export default api;
src/index.js (main.js를 index.js로 파일명 변경)

import api from './api' // 여기에서 아래와 같은 오류 발생

Error: Cannot find module D:\02.dev\99.test\blog_1\blog_backend\src\api imported from D:\02.dev\99.test\blog_1\blog_backend\src\index.js at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:58:13) at Loader.resolve (internal/modules/esm/loader.js:85:40) at Loader.getModuleJob (internal/modules/esm/loader.js:188:40) at ModuleWrap. (internal/modules/esm/module_job.js:42:40) at link (internal/modules/esm/module_job.js:41:36) { code: 'ERR_MODULE_NOT_FOUND' } [nodemon] app crashed - waiting for file changes before starting...

검색을 통해 여기저기 찾아 보았지만 해결책을 찾지 못했습니다. 도움 부탁 드립니다.

whitedoghub avatar Feb 11 '20 04:02 whitedoghub

Node.js v12부터 ES Module 정식지원이라는 부분에서 저는 type 키에 module이 아니라 export 값을 지정하고 esm 설치, -r esm src/index.js , .eslintrc.json을 다 설정해 주어야 됩니다.

대신 main.js으로 변경하고 index.js부분은 사용하지 않았네요 사용해도 되고 , 안해도 되는 것으로 보입니다.

mattt0204 avatar Feb 14 '20 11:02 mattt0204

https://github.com/velopert/learning-react/blob/master/corrections.md#224-pg-646-%EC%A0%95%EC%A0%95

velopert avatar Mar 09 '20 04:03 velopert