에러
node.js 버전
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: 'DocFlow_Hugo@0.0.0',
npm WARN EBADENGINE required: { node: '>=20.11.0' },
npm WARN EBADENGINE current: { node: 'v18.17.1', npm: '9.6.7' }
npm WARN EBADENGINE }
Cloudflare Pages에서 사용하는 Node.js 버전을 업그레이드해야 합니다. Cloudflare Pages에서는 .node-version
파일을 사용하여 Node.js 버전을 설정할 수 있습니다. 다음 단계에 따라 프로젝트의 루트 디렉토리에 .node-version
파일을 추가하고 필요한 Node.js 버전을 설정할 수 있습니다.
1. .node-version
파일 추가
프로젝트의 루트 디렉토리에
.node-version
파일을 생성합니다.파일 내용에 필요한 Node.js 버전을 지정합니다. 예를 들어,
20.11.0
버전을 사용하려면 파일 내용은 다음과 같습니다:
20.11.0
2. package.json
파일 업데이트
이미 package.json
파일의 engines
섹션이 Node.js 버전을 요구하고 있으므로, 이 부분은 그대로 두면 됩니다. 하지만, 확인 차 다시 적어두겠습니다:
"engines": {
"node": ">=20.11.0"
}
3. Cloudflare Pages 설정 업데이트
- Cloudflare Pages 대시보드로 이동합니다.
- Environment variables 설정:
- Environment variables 탭을 선택합니다.
- Add variable 버튼을 클릭합니다.
Name
필드에NODE_VERSION
을 입력하고,Value
필드에20.11.0
을 입력합니다.- Save 버튼을 클릭하여 환경 변수를 저장합니다.
4. 로컬에서 빌드 테스트
로컬 환경에서도 Node.js 버전을 업데이트하여 동일한 환경을 테스트합니다. 이를 위해 Node Version Manager (nvm)을 사용할 수 있습니다.
nvm
을 사용하여 Node.js 20.11.0 버전을 설치합니다:
nvm install 20.11.0
nvm use 20.11.0
nvm use 20.11.0
을 통해 설치한 Node.js 버전을 사용하도록 설정합니다.프로젝트 디렉토리에서 종속성을 다시 설치하고 빌드를 테스트합니다:
npm install
npm run build
5. 변경 사항 푸시 및 배포
위의 설정을 완료한 후 변경 사항을 GitHub 저장소에 푸시하고 Cloudflare Pages에서 자동으로 배포가 트리거되도록 합니다:
git add .node-version package.json
git commit -m "Update Node.js version to 20.11.0"
git push origin master
NPM 패키지 문제
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
경고 메시지들은 오래된 NPM 패키지를 사용하고 있음을 나타내며, 이는 inflight
및 glob
패키지가 더 이상 지원되지 않거나 오래된 버전이라는 경고입니다. 이를 해결하기 위해서는 이러한 패키지를 업데이트하거나, 이를 사용하는 패키지를 업데이트하는 것이 좋습니다. 그러나 이는 실제 빌드 오류와는 무관할 수 있습니다. 하지만 장기적으로 안정성을 위해 업데이트를 고려하는 것이 좋습니다.
1. inflight
패키지 경고 해결
inflight
패키지는 더 이상 지원되지 않으며 메모리 누수를 일으킬 수 있으므로 대체 패키지로 전환하는 것이 좋습니다. 일반적으로 inflight
를 직접 사용하지 않고, 다른 패키지의 종속성으로 포함되어 있을 수 있습니다.
2. glob
패키지 경고 해결
glob
패키지의 경우 v9 이전 버전은 더 이상 지원되지 않습니다. 따라서 glob
패키지의 최신 버전으로 업데이트하는 것이 좋습니다.
종속성 업데이트 절차
프로젝트의 종속성 업데이트:
package.json
파일을 열어 사용 중인 패키지를 확인하고 업데이트합니다.패키지 업데이트: 종속성을 최신 버전으로 업데이트하기 위해
npm outdated
명령어를 사용하여 업데이트 가능한 패키지를 확인하고,npm update
또는 수동으로 버전을 수정합니다.
npm outdated
npm update
필요한 경우 직접 종속성 수정: package.json
파일에서 직접 오래된 패키지의 버전을 최신 버전으로 수정할 수도 있습니다.
{
"dependencies": {
"glob": "^9.0.0",
"inflight": "npm package로 교체하거나 직접 제거"
}
}
다시 설치: 종속성을 다시 설치합니다.
rm -rf node_modules package-lock.json
npm install
파일 누락
ERROR render of "taxonomy" failed: "/opt/buildhome/repo/node_modules/@hyas/core/layouts/_default/baseof.html:3:5": execute of template failed: template: _default/terms.html:3:5: executing "_default/terms.html" at <partial "head/head" .>: error calling partial: "/opt/buildhome/repo/node_modules/@hyas/core/layouts/partials/head/head.html:15:8": execute of template failed: template: partials/head/head.html:15:8: executing "partials/head/head.html" at <partial "head/seo" .>: error calling partial: "/opt/buildhome/repo/node_modules/@hyas/seo/layouts/partials/head/seo.html:1:4": execute of template failed: template: partials/head/seo.html:1:4: executing "partials/head/seo.html" at <partial "seo/_all" .>: error calling partial: "/opt/buildhome/repo/node_modules/@hyas/seo/layouts/partials/seo/_all.html:9:4": execute of template failed: template: partials/seo/_all.html:9:4: executing "partials/seo/_all.html" at <partial "seo/opengraph" .>: error calling partial: "/opt/buildhome/repo/node_modules/@hyas/seo/layouts/partials/seo/opengraph.html:7:15": execute of template failed: template: partials/seo/opengraph.html:7:15: executing "partials/seo/opengraph.html" at <partial "_funcs/get-page-images" .>: error calling partial: partial "_funcs/get-page-images" not found
이 오류 메시지는 특정 템플릿 파일에서 사용되는 partial 파일이 누락되었거나 올바르게 설치되지 않았음을 나타냅니다.
1. 누락된 partial 파일 확인 및 추가
node_modules/@hyas/seo/layouts/partials/seo/opengraph.html
파일에서 _funcs/get-page-images
partial 파일을 찾을 수 없다고 합니다.
_funcs/get-page-images.html
파일 추가
다음과 같이 프로젝트의 layouts/partials/_funcs/get-page-images.html
경로에 파일을 추가해보세요:
{{ $images := slice }}
{{ if .Params.images }}
{{ $images = .Params.images }}
{{ end }}
{{ return $images }}
node_modules/@hyas/seo/layouts/partials/seo/opengraph.html
파일의 참조 경로를 확인합니다.
{{ $images = partial "partials/_funcs/get-page-images" . }}
2. 템플릿 파일에서의 참조 수정
필요한 partial 파일이 존재하지 않는다면, 템플릿 파일에서 해당 partial 파일의 참조를 주석 처리하거나 제거할 수 있습니다.
예를 들어, node_modules/@hyas/seo/layouts/partials/seo/opengraph.html
파일을 수정할 수 있습니다:
<!-- node_modules/@hyas/seo/layouts/partials/seo/opengraph.html -->
{{/* partial "_funcs/get-page-images" . */}}
3. 패키지 업데이트 및 재설치
Hyas 테마와 관련 패키지들을 최신 버전으로 업데이트하고 재설치합니다.
rm -rf node_modules package-lock.json
npm install
MediaType Parsing
Error: error building site: "/opt/buildhome/repo/content/docs/Deployment/Guide/Git 설정 기타.md:1:1": "/opt/buildhome/repo/node_modules/@hyas/images/layouts/_default/_markup/render-image.html:155:12": execute of template failed: template: _default/_markup/render-image.html:155:12: executing "_default/_markup/render-image.html" at <$r.MediaType.SubType>: can't evaluate field MediaType in type string
doks theme - MediaType Parsing error 참조
HUGO VERSION 에 대해 다음과 같이 설정 가능
- 설정(Settings) 탭을 클릭합니다.
- 환경 변수 추가:
- 환경 변수(Environment variables) 섹션으로 이동합니다.
- 새로운 환경 변수를 추가하기 위해 “Add variable” 버튼을 클릭합니다.
- 다음과 같이 환경 변수를 설정합니다:
- Variable name:
HUGO_VERSION
- Value:
0.127.0
- Variable name:
빌드 재실행:
- 환경 변수를 설정한 후, 변경 사항을 저장하고 빌드를 다시 실행합니다.