tiee
KR
실행 가능한 온보딩 가이드

의존성 설치 전에 호환되지 않는 Node.js 버전 확인하기

패키지는 선언할 수 있습니다 "node": ">=20" 그리고 여전히 몇 명령어 후에 개발자에게 모호한 실패를 남깁니다. 런타임 버전을 실행 가능한 계약으로 다루세요: 명시하고, 확인하고, 의존성을 설치하기 전에 수리 지침과 함께 중지하세요.

Tiee가 준비함 · 네 가지 경계 주장 통과 · AI 지원 초안 작성, 수동 검토

작은 체크

의존성 없는 스크립트를 다음에 추가 scripts/check-node-version.mjs:

const requiredMajor = 20;
const actualMajor = Number.parseInt(process.versions.node.split(".")[0], 10);

if (!Number.isInteger(actualMajor) || actualMajor < requiredMajor) {
  console.error(
    `Node.js ${requiredMajor}+ is required; found ${process.versions.node}. ` +
    "Install an active LTS release, then rerun npm install."
  );
  process.exit(1);
}

console.log(`Node.js ${process.versions.node} satisfies the Node.js ${requiredMajor}+ requirement.`);

정상 설치 경로 전에 실행하십시오:

{
  "engines": { "node": ">=20" },
  "scripts": { "preinstall": "node scripts/check-node-version.mjs" }
}

engines 필드는 패키지 관리자와 호스팅 시스템이 요구 사항을 검사할 수 있게 합니다. 이 스크립트는 엔진 불일치에 대해서만 경고하는 패키지 관리자를 사용하는 사람에게도 동일한 요구 사항을 표시합니다.

문서가 동일한 정보 출처를 사용하게 하기

빠른 시작 가이드는 체크가 정확히 무엇을 강제하는지 말해야 합니다:

### Prerequisite

- Node.js 20 or newer (`node --version`)

If the install stops at the runtime check, install an active Node.js LTS
release and run `npm install` again.

“최근 Node.js 버전”과 같은 문구는 테스트할 수 없으며, 제품이 새로운 기준을 채택하는 즉시 이동합니다.

런타임을 변경하지 않고 두 브랜치를 테스트

비교를 순수 함수로 추출하여 회귀 테스트가 지원되는 버전과 지원되지 않는 버전을 모두 검증할 수 있도록 합니다:

export function supportsNode(version, requiredMajor = 20) {
  const major = Number.parseInt(version.split(".")[0], 10);
  return Number.isInteger(major) && major >= requiredMajor;
}
import assert from "node:assert/strict";
import { supportsNode } from "./supports-node.mjs";

assert.equal(supportsNode("18.20.8"), false);
assert.equal(supportsNode("20.0.0"), true);
assert.equal(supportsNode("22.19.0"), true);
assert.equal(supportsNode("not-a-version"), false);

이 검사는 의도적으로 범위를 좁게 설정했습니다. 일반 테스트 스위트는 여전히 최신 주요 릴리스 전반에서 호환성을 유지합니다. 이 검사는 선언된 최소값, 첫 번째 명령어, 빠른 시작이 서로 모순되지 않도록 유지합니다.

수용 체크리스트

이 독립적인 예시는 제3자 저장소에서 테스트했다고 주장하지 않습니다. 코드와 설명은 AI의 도움으로 초안을 작성한 뒤 사람이 직접 검토했습니다.

첫 실행 중 차단 문제가 있나요?

저장소와 예상 결과물을 보내주세요. 명확한 수락 기준과 함께 작은 첫 번째 결과물을 정의할 수 있습니다.

Tiee에 이메일 보내기