문제 : 프로젝트 실행시 다음과 같은 오류
$ yarn dev
yarn run v1.22.19
warning package.json: No license field
$ vite
vite v2.9.15 dev server running at:
> Local: http://localhost:3000/
> Network: use `--host` to expose
7 │ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core')) :
You can mark the path "@popperjs/core" as external to exclude it from the bundle, which will
remove this error. You can also surround this "require" call with a try/catch block to handle this
failure at run-time instead of bundle-time.
오후 3:49:06 [vite] error while updating dependencies:
Error: Build failed with 1 error:
node_modules/bootstrap/dist/js/bootstrap.js:7:98: ERROR: Could not resolve "@popperjs/core"
참고로 1_project_settings브랜치의 코드를 checkout한 상태에서 소스코드는 한 줄도 수정하지 않았습니다.
해결방법
popperjs/core를 패키지에 추가한다.
$npm install @popperjs/core@latest
일단 위와 같은 방법으로 해결은 되지만, 문제는 다른 브렌치로 이동(switch/checkout)할 때 마다 똑같은 행위를 해 주어야 한다는 점.
git 사용에 익숙치 않는 사람은 로컬 체인지 후 다른 브렌치로 이동하는 것 조차 힘들 수 있다는 점.
그래서 프로젝트 실행은 main브랜치에서만 하고, 다른 브랜치의 코드 확인은 체크아웃 받지 않고 하는것을 추천.
원인
모르겠습니다.
node_modules내부의 bootstrap -> package.json 을 열어보면 devDependencies에 popperjs/core@latest 가 이미 있는데. 해당 모듈을 찾을 수 없다는 에러가 왜 나는걸까요?
아무튼 위에 기술한 방법으로 해결하면 됩니다.
개발환경은 windows + node v18.x.x 입니다. nvm으로 node v16.0.0 으로 낮춰서 해봐도 같은 증상인 걸 보면 node 버전 문제는 아마도 아닌 것 같습니다.
같은 문제로 고민하는 분들께 도움이 되길 바랍니다.