pnpm package 를 삭제시 다음과 같은 오류를 만나는 경우
➜ playground git:(master) pnpm remove -g my-module
ERR_PNPM_UNEXPECTED_STORE Unexpected store location
The dependencies at "/Users/user/Library/pnpm/global/5/node_modules" are currently linked from the store at "/Users/user/Library/pnpm/store/v10".
pnpm now wants to use the store at "/Users/user/Library/pnpm/store/v3" to link dependencies.
If you want to use the new store location, reinstall your dependencies with "pnpm install".
You may change the global store location by running "pnpm config set store-dir <dir> --global".
(This error may happen if the node_modules was installed with a different major version of pnpm)
pnpm의 전역 패키지와 store란?
1. 전역 패키지(global package)
- pnpm add -g 패키지명으로 설치한 패키지는 전역(global)으로 설치됩니다.
- 이 패키지들은 보통 한 곳(예: /Users/user/Library/pnpm/global/5)에 모여 있습니다.
- 이 폴더 안에 여러 전역 패키지들이 들어 있습니다.
2. store란?
- pnpm은 패키지를 효율적으로 관리하기 위해 store라는 별도의 저장소를 사용합니다.
- store에는 실제 패키지 파일들이 저장되고,전역 패키지 폴더(예: /Users/user/Library/pnpm/global/5/node_modules)에는이 store를 가리키는 심볼릭 링크(바로가기)가 만들어집니다.
- store의 위치는 예를 들어 /Users/user/Library/pnpm/store/v10처럼 보입니다.
에러 메시지의 의미
현재 전역 패키지가 /Users/user/Library/pnpm/global/5에 설치되어 있다
→ 전역 패키지들이 이 폴더에 모여 있다는 뜻입니다.
store는 /Users/user/Library/pnpm/store/v10입니다
→ 실제 패키지 파일들은 이 store 폴더에 저장되어 있다는 뜻입니다.
왜 문제가 생겼나요?
pnpm의 버전이 바뀌거나 설정이 바뀌면,store의 위치가 달라질 수 있습니다(예: /v10 → /v3).
이럴 때, 전역 패키지 폴더와 store의 위치가 서로 다르면패키지 삭제/설치 시 에러가 발생할 수 있습니다.
1. store 위치를 맞춰서 삭제 (권장)
에러 메시지에서 store 위치가 다르다고 나왔으니,store 위치를 기존과 동일하게 맞춘 뒤 삭제를 시도할 수 있습니다.
pnpm config set store-dir /Users/user/Library/pnpm/store/v10 --global
pnpm remove -g my-module
이렇게 하면 기존 전역 패키지와 store가 연결되어 정상적으로 삭제가 가능합니다.
2. pnpm을 최신 버전으로 업데이트 후 재시도
pnpm 버전이 달라서 생기는 문제일 수 있으니,아래 명령어로 pnpm을 최신 버전으로 업데이트한 후 다시 시도해보세요.
pnpm self-update
pnpm remove -g my-module
3. 수동 삭제 (최후의 수단)
위 방법이 모두 안 될 때는 수동으로 심볼릭 링크와 store 파일을 직접 삭제해야 합니다.
심볼릭 링크 삭제
store 내 실제 파일 삭제
store 내 my-module 관련 폴더도 직접 삭제할 수 있습니다.(이 경로는 패키지마다 다를 수 있습니다.)
1 번에 따라 진행한다면
1. store 위치를 기존 위치로 변경
pnpm config set store-dir /Users/user/Library/pnpm/store/v10 --global
2. 전역 패키지 삭제
pnpm remove -g my-module
3. store 위치를 원래대로 복구
예를 들어, 현재 pnpm이 /Users/user/Library/pnpm/store/v3을 사용하고 있다면:
pnpm config set store-dir /Users/user/Library/pnpm/store/v3 --global
이렇게 하면 패키지 삭제도 정상적으로 되고, pnpm의 store 설정도 원래대로 돌아가 앞으로의 전역 패키지 관리도 문제없이 할 수 있습니다.
'코드 > Package manager(npm, pnpm)' 카테고리의 다른 글
[Pnpm] command list (0) | 2025.06.24 |
---|---|
[Vite] Cannot find type definition file for 'vite/client'. The file is in the program because: Entry point of type library 'vite/client' specified in compilerOptions (0) | 2024.10.25 |
[Npm] dotenv, cross-env (0) | 2024.01.10 |
[npm] npm outdated, npm doctor (0) | 2024.01.08 |
[Npm] .npmignore (0) | 2023.12.14 |