> blog-client@0.1.0 start
> react-scripts start
node:internal/modules/cjs/loader:488
throw e;
^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/tokenize' is not defined by "exports" in C:\blog-client\node_modules\postcss-saf
e-parser\node_modules\postcss\package.json
at new NodeError (node:internal/errors:372:5)
at throwExportsNotFound (node:internal/modules/esm/resolve:440:9)
at packageExportsResolve (node:internal/modules/esm/resolve:719:3)
at resolveExports (node:internal/modules/cjs/loader:482:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (C:\blog-client\node_modules\postcss-safe-parser\lib\safe-parser.js:1:17) {
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}
Node.js v17.9.0
오류
예전에 진행했던 프로젝트를 수정해볼까 해서 오랜만에 프로젝트를 구동시켰더니 Package subpath './lib/tokenize' is not defined by "exports"로 시작하는 오류가 뜨면서 실행이 되지 않았다.
검색해보니 node.js 버전 17에서 발생하는 문제라는 의견이 많았고, 이를 해결하기 위해 노드의 버전을 다운그레이드 했다.
해결
NVM 설치, node 다운그레이드
https://github.com/coreybutler/nvm-windows
위의 링크로 들어가 window에서 사용할 수 있는 nvm을 다운받은 뒤 관리자 권한으로 cmd 창을 켜고 아래의 명령어를 입력한다.
node -v
nvm list available
nvm install 16.19.0 (nvm install 원하는 버전)
nvm list
nvm use 16.19.0
node -v
이렇게 하려고 했으나 나의 경우 PC의 사용자 이름이 한글로 되어있어 설치가 안되고 could not be found or does not exist. 라는 메시지가 출력되었다. 포맷을 해야하나 고민하다가 이 문제를 해결한 포스팅을 발견해 문제를 해결할 수 있었다.
해결 방법은
nvm root "C:\Users\사용자이름\AppData\Roaming\NVM"
명령어를 사용해 한글 사용자 이름을 다시 적용시켜주는 것이었다.
참고 포스팅 : https://jinnnkcoding.tistory.com/189
노드 버전을 16대로 다운그레이드 시키니 프로젝트가 정상동작했다.
*** 추가 문제 발견
컴퓨터를 껐다 켠 후 다시 프로젝트를 실행하니 갑자기 node를 인식하지 못하는 문제가 발생했다.
cmd 창으로 확인해보니 nvm 역시 인식하지 못하고 동일한 메시지가 출력되었다.
'nvm'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.
해결
nvm을 다시 설치해야 할 것만 같은 불길한 느낌이 들었지만 우선은 폭풍 검색을 했고, 환경 변수를 설정해줘야 한다는 사실을 알게 되었다. 일반적으로는 nvm 설치 전에 환경변수를 설정하는 것 같다.
환경 변수 설정
변수를 추가한 뒤 path에 경로를 추가해주면 된다.
기존에 있던 nodejs 폴더는 삭제했다. nodejs 폴더는 nvm에서 자동으로 생성하는 것 같다.
결과적으로 노드와 nvm을 재설치하지 않고 문제를 해결할 수 있었다.
'Develop > React' 카테고리의 다른 글
일정 관리 앱[7]. Moment-Calendar (0) | 2021.06.11 |
---|---|
일정 관리 앱[4]. Calendar (0) | 2021.05.25 |
일정 관리 앱[3]. Momentum (0) | 2021.05.17 |
리액트 - 컴포넌트의 라이프사이클 메서드 (0) | 2021.01.25 |