본문 바로가기
빌드노트 검색

빌드노트

빌드·배포

빌드·배포 카테고리의 글입니다.

글 검색

글 목록

총 49개의 글

  1. ES module로 바꿨더니 __dirname이 없어졌다

    ES module에는 CommonJS의 __dirname이 없다. 실행 폴더를 바꿔 같은 이름의 파일을 읽어 보고, 모듈 기준 URL·import.meta.dirname·fileURLToPath 중 지원 버전과 API에 맞는 경로를 고른다. 공백 경로에서 URL.pathname을 그대로 쓰면 실패하는 이유도 확인한다.

  2. Maven 라이브러리는 빌드되는데 소비 앱에는 클래스가 없다

    Maven의 optional 의존성은 제공 라이브러리에는 남아도 소비 앱에 자동 전달되지 않는다. 합성 라이브러리로 트리·컴파일 실패·실행 중 클래스 누락을 비교하고, 사용하는 기능의 의존성을 앱에 직접 선언하는 방법을 확인한다.

  3. npm ci --omit=dev는 성공했는데 빌드 도구가 없다

    npm ci --omit=dev가 성공해도 빌드에 필요한 개발 도구는 빠질 수 있다. 같은 lock의 설치·파일·빌드 결과를 비교하고, 실제 설치 조건을 확인해 빌드용 의존성과 운영용 의존성을 나누는 방법을 설명한다.

  4. Maven package 후에도 삭제한 리소스가 JAR에 남는 이유

    소스에서 지운 텍스트 리소스가 target/classes와 JAR에 남는 조건을 별도 Maven 프로젝트로 확인했다. 소스·중간 출력·JAR을 비교하고 clean package 결과로 이전 복사본과 현재 빌드 입력을 구별한다.

  5. 파일은 있는데 ERR_PACKAGE_PATH_NOT_EXPORTED가 난다

    node_modules에 파일이 있어도 exports가 공개하지 않은 하위 경로는 import할 수 없다. 같은 파일을 둔 로컬 패키지에서 오류를 비교하고, 공개 진입점을 쓰는 수정과 소유 패키지에 경로를 명시하는 수정을 구분한다.

  6. Node exec에서 로그가 잘리고 maxBuffer 오류가 날 때

    Node exec의 ERR_CHILD_PROCESS_STDIO_MAXBUFFER를 CLI의 종료 코드와 구별한다. stdout·stderr의 작은 한도와 충분한 한도, spawn 스트림 소비를 실제 비교하고 버퍼 크기를 정하거나 로그 처리 방식을 바꾸는 기준을 설명한다.

  7. --env-file을 바꿨는데 Node는 이전 환경값을 읽는다

    Node 내장 --env-file은 이미 주어진 환경값을 덮지 않는다. 키 존재 확인에서 시작 설정의 수정 위치로 이어 가고, 같은 합성 키와 두 파일의 순서를 바꾼 새 프로세스의 실제 값으로 판단한다.

  8. 환경값을 import 위에서 설정했는데 Node 모듈은 undefined를 읽는다

    Node ESM의 정적 의존 모듈은 엔트리 본문의 환경값 대입보다 먼저 평가될 수 있다. 같은 두 파일을 새 프로세스에서 비교해 읽는 시점을 확인하고, 시작 환경 주입과 초기화 뒤 동적 import 중 적용할 방법을 고른다.

  9. 로컬에는 있는데 npm 패키지에는 템플릿 파일이 없다

    로컬에 있는 템플릿이 npm tarball에서 빠졌는지 pack 목록과 실제 tar 항목으로 확인한다. files와 해당 위치의 .npmignore를 고친 뒤 별도 소비자에서 설치와 자원 읽기를 구분해 검사한다.

  10. npm 설치는 성공했는데 postinstall 생성 파일이 없다

    npm 설치가 종료 코드 0이어도 ignore-scripts 때문에 postinstall 생성물이 빠질 수 있다. 실제 CI 명령과 scripts·설정을 확인하고, 검토한 생성 작업을 명시 실행할 때 생략되는 pre/post hook과 의존 패키지의 경계를 살핀다.

  11. 로컬 npm install은 되는데 CI의 npm ci는 실패하는 이유

    package.json만 바꾼 입력에서 npm install은 lock을 갱신하며 성공했지만 npm ci는 실패했다. 실제 오류의 두 버전과 lock diff로 누락을 확인하고, 기존 lock 갱신과 npm 옵션 대조 중 필요한 조치를 고른다.

  12. NODE_PATH로 찾는 패키지, require는 되고 ESM import는 실패한다

    NODE_PATH에만 둔 패키지는 CommonJS require로 읽혀도 ESM import로는 찾지 못한다. 실제 해석 위치를 조회하고 같은 로컬 패키지를 node_modules에 놓은 대조로 배치 문제를 구별한다.