daangn / stackflow

🧱 Mobile-first stack navigator framework with composable plugin system
https://stackflow.so
MIT License
747 stars 80 forks source link

빌드 가이드에 사용 Node.js 버전이 명시되면 좋겠습니다. #425

Closed scarf005 closed 10 months ago

scarf005 commented 10 months ago

개요

프로젝트 빌드 시 Node.js 버전 16이 필요함을 CONTRIBUTING.md에 명시하면 좋을 것 같습니다.

내용

실행 환경

로그

$ yarn
# ...
Done with warnings in 0s 657ms

$ yarn build
error [ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "file:///home/scarf/repo/etc/stackflow2/package.json" needs an import assertion of type "json"

$ yarn run ultra --help

node:internal/process/promises:289
            triggerUncaughtException(err, true /* fromPromise */);
            ^
TypeError [Error]: [ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "file:///home/scarf/repo/etc/stackflow2/.yarn/cache/ultra-runner-npm-3.10.5-9f810878b0-4aed834863.zip/node_modules/ultra-runner/package.json" needs an import assertion of type "json"
    at load$1 (file:///home/scarf/repo/etc/stackflow2/.pnp.loader.mjs:1455:17)
    at nextLoad (node:internal/modules/esm/hooks:833:28)
    at Hooks.load (node:internal/modules/esm/hooks:416:26)
    at handleMessage (node:internal/modules/esm/worker:168:24)
    at checkForMessages (node:internal/modules/esm/worker:117:28)
    at process.<anonymous> (node:internal/modules/esm/worker:136:5)
    at process.emit (node:events:514:28)
    at process.emit (/home/scarf/repo/etc/stackflow2/.pnp.cjs:26072:25) {
  code: 'ERR_IMPORT_ASSERTION_TYPE_MISSING'
}

해당 오류는 Node.js 17부터 json 파일 로드 시 import assertion[^1]을 요구하도록 변경)된 것과 연관이 있는 것으로 보입니다.

https://github.com/daangn/stackflow/blob/254416073ae416a57a2289e8842d97bd875ac55b/.github/workflows/build.yml#L22-L24

CI에서는 사용 노드 버전이 16임이 명시되어 있으나, 아직 CONTRIBUTING.md에는 관련 내용이 적혀있지 않아 해당 부분을 추가하면 빌드 시 시행착오를 줄일 수 있을 것 같습니다.

관련 링크:

[^1]: Node.js 21부터는 문법이 확정된 import attribute로 변경되었습니다.