티스토리 뷰
yarn berry install 에러 "The "yarn-path" option has been set..."
serpiko 2022. 6. 28. 17:04yarn berry 에러: yarn berry를 찾을 수 없다는 문구가 포함
Internal Error: The "yarn-path" option has been set (in /home/hjj/wsl-poc/test/.yarnrc.yml), but the specified location doesn't exist (/home/hjj/wsl-poc/test/.yarn/releases/yarn-3.2.1.cjs).
at i (/home/hjj/.node/corepack/yarn/3.2.1/yarn.js:449:11811)
at async r (/home/hjj/.node/corepack/yarn/3.2.1/yarn.js:449:10914)
1. 프로젝트에서 .yarnrc.yml 파일을 제거한다
2. yarn2 버전을 다시 구성
$ yarn set version berry
3. gitignore 설정
( 예외처리 설정에대한 항목 https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored )
.gitignore 설정이 없으면 1,000개 이상의 종속성 파일이 저장소에 같이 커밋되므로
.gitignore 파일에 아래와 같이 예외처리 해준다.
.yarn/*
!.yarn/patches
!.yarn/releases
!.yarn/plugins
!.yarn/sdks
!.yarn/versions
.pnp.*
4. 업데이트 된 .yarnrc.yml 파일을 커밋에 포함시키도록 한다.
특히 .yarnrc.yml 에 명시된 .yarn/releases/yarn-berry.js ( 또는 .yarn/releases/yarn-berry.cjs 처럼 이름이 다를 수 있다)
* 2022.09.21 내용 추가
Cannot find package 'OOO' imported from OOO...
(빌드의 예) build.sh
$ yarn
$ rm -rm .yarnrc.yml
$ yarn set version berry
$ yarn run build (... <= error)
.yarnrc.yml
nodeLinker: node-modules
5. VSCode 에서 타입스크립트를 사용하기 위한 추가 (선택사항)
yarn2 는 node_modules 대신에 .yarn/cache 폴더의 .pnp.js 파일에 의존성을 기록하고 실제 파일은 zip 으로 관리한다.
그렇기 때문에 각 패키지는 동적으로 참조되고 용량도 node_modules 를 사용할 때 보다 많이 줄어들었다.
타입스크립트의 타입은 이 zip 캐시에 저장된 PnP방식으로 호출될 것이다.
그러면 zip을 읽어오기 위해서 VSCode 마켓스페이스의 ZipFS 확장 플러그인을 설치해야 한다.
또한 VSCode가 기존 node_modules 에서 읽어왔던 개발 도구들을 yarn berry 의 PnP 방식에서 사용할 수 있도록
아래 명령어를 사용해 주어야 한다.
$ yarn dlx @yarnpkg/sdks vscode
yarn에서 제공하는 SDK 이며 이는 /.vscode/settings.json 에서 다음의 설정이 추가되어있는것을 확인할 수 있다.
{
"search.exclude": {
"**/.yarn": true,
"**/.pnp.*": true
},
"eslint.nodePath": ".yarn/sdks",
"typescript.tsdk": ".yarn/sdks/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true
}
마지막으로 VSCode 에서 설치한 sdk 로 ts 버전을 지정해주면 된다.
.ts파일을 열고, VSCode 우측 하단에서 { } 버튼을 누른후, .yarn/sdks/typescript/lib 를 선택해준다.
'■ 백엔드 ■ > NodeJS' 카테고리의 다른 글
Passport local authentication flowchart (0) | 2022.03.18 |
---|---|
express res.status 처리 (0) | 2020.09.12 |
기존 cookie clear의 한계, 그냥 cookie overwrite로 해결 (0) | 2020.09.04 |
A cookie associated ... `SameSite` attribute ( Node.js example for SameSite=None; Secure ) (0) | 2020.08.24 |
express - multiple routes in a single line (0) | 2020.07.21 |