최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

 

yarn berry node 20.10.0 적용 후 error 처리 기록

에러 원인

- 이전 구성 버전: node 16.15.0 / packageManager yarn@3.2.3 

- node 20.10.0 으로 node 버전 변경 시 에러

 

현재 package.json

{
  "name": "my-project",
  "version": "0.1.0",
  "private": true,
  "packageManager": "yarn@3.2.3",
  ...
}

 

node 20.10.0 설치 후 20.10.0으로 변경하여 프로젝트를 구동

# 현재 버전
$ node -v
$ v16.15.0

# node 20.10.0 으로 변경
$ nvm install 20.10.0
$ nvm use 20.10.0

# 프로젝트 실행
$ yarn run start

 

에러 메세지

- 다음과 같은 에러 전문이 출력됨

- 주요 에러 메세지

node:internal/process/esm_loader:40

internalBinding('errors').triggerUncaughtException(

Unknown file extension ".json" for package.json

node:internal/process/esm_loader:40
      internalBinding('errors').triggerUncaughtException(
                                ^
Error: Unknown file extension ".json" for /Users/company/Documents/my/poc/project-clone/package.json
    at getFileFormat (file:///Users/company/Documents/my/poc/project-clone/.pnp.loader.mjs:129:13)
    at load$1 (file:///Users/company/Documents/my/poc/project-clone/.pnp.loader.mjs:177:18)
    at nextLoad (node:internal/modules/esm/hooks:865:28)
    at Hooks.load (node:internal/modules/esm/hooks:448:26)
    at MessagePort.handleMessage (node:internal/modules/esm/worker:196:24)
    at [nodejs.internal.kHybridDispatch] (node:internal/event_target:814:20)
    at exports.emitMessage (node:internal/per_context/messageport:23:28)

 

해결방법

- yarn berry 4.x 업데이트

- $ yarn set version [--only-if-needed] <version>

$ yarn set version 4.0.2

$ yarn install

 

package.json

- 다음과 같이 yarn@4.0.2 로 변경되어있음

{
  "name": "my-project",
  "version": "0.1.0",
  "private": true,
  "packageManager": "yarn@4.0.2",
  ...
}

 

프로젝트 다시 구동

$ yarn run dev

 

구동 성공 메세지 출력

Compiled successfully!

You can now view trading-web in the browser.

  Local:            http://localhost:3000
  On Your Network:  http://192.168.0.44:3000

Note that the development build is not optimized.
To create a production build, use yarn build.

webpack compiled successfully
No issues found.

 

주요파일 변경내역

- .pnp.cjs

- .pnp.loader.mjs

- package.json

- yarn.lock

- .yarn/releases/yarn-4.0.2cjs

- .yarn/sdks/ 파일들 (개인 plugin 설정마다 다를 수 있음)

    - eslint

    - prettier

   - typescript

- yarnrc.yml

compressionLevel: mixed

enableGlobalCache: false

nodeLinker: pnp

yarnPath: .yarn/releases/yarn-4.0.2.cjs

 

댓글