programing

process.env 때문에 경고를 오류로 간주하고 있습니다.CI = 참입니다.컴파일 실패

telecom 2023. 2. 24. 13:15
반응형

process.env 때문에 경고를 오류로 간주하고 있습니다.CI = 참입니다.컴파일 실패

저는 리액트 웨더 어플리케이션으로 셀프 학습을 하고 있습니다.gh-page에서도 동일하게 전개.
URL
https://davisraimon.github.io/react-weather/
레포
https://github.com/davisraimon/react-weather

나의 애플리케이션을 Travis Ci와 통합하려고 했을 때 다음과 같은 오류가 발생하였습니다.Process.env라고 하는 env 변수를 변경해야 한다고 되어 있습니다.CI.

$ git clone --depth=50 --branch=master https://github.com/davisraimon/react-weather.git davisraimon/react-weather
nvm.install
4.18s$ nvm install stable
cache.1
Setting up build cache
cache.npm
$ node --version
v14.4.0
$ npm --version
6.14.5
$ nvm --version
0.35.3
install.npm
13.21s$ npm ci 
7.45s$ npm run build
> react-weather@0.1.0 build /home/travis/build/davisraimon/react-weather
> react-scripts build
Creating an optimized production build...
Treating warnings as errors because process.env.CI = true.
Most CI servers set it automatically.
Failed to compile.
./src/components/form.component.js
  Line 1:17:  'Component' is defined but never used  no-unused-vars
./src/App.js
  Line 2:8:    'logo' is defined but never used              no-unused-vars
  Line 8:7:    'API_key' is assigned a value but never used  no-unused-vars
  Line 37:5:   Expected a default case                       default-case
  Line 53:14:  Expected '===' and instead saw '=='           eqeqeq
  Line 69:20:  Expected '===' and instead saw '=='           eqeqeq
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! react-weather@0.1.0 build: `react-scripts build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the react-weather@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /home/travis/.npm/_logs/2020-06-30T17_45_07_887Z-debug.log
The command "npm run build" exited with 1.
cache.2
store build cache

.travis.yml 파일에 env 변수를 추가했습니다.

env:
    process.env.CI : false

그래도 같은 에러가 나타난다.

누가 이 상황에서 나를 도와줄 수 있나요?

  "scripts": {
    "start": "react-scripts start",
    "build": "CI=false && react-scripts build",  // Add CI=False here
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

저에게 해결책은 다음과 같습니다.

env: 
  CI: false

GitLab CICD 파이프라인 내에서 빌드 및 배포를 계속해야 하는 경우 다음과 같이 CI=false를 포함할 수 있습니다.

CI=false npm run build

또는

unset CI
npm run build

다음은 완전한 gitlab_ci 작업 샘플입니다.

build-dev:
  environment: DEV
  image: node:16
  stage: build
  script:
    - npm install
    - CI=false npm run build
  only:
    - /^devrelease-.*$/
  tags:
    - docker

또는

build-dev:
  environment: DEV
  image: node:16
  stage: build
  script:
    - unset CI
    - npm install
    - npm run build
  only:
    - /^devrelease-.*$/
  tags:
    - docker
  

교환은 이쪽에서npm run build와 함께CI='' npm run build일했다.

제 경우에는 Netlify를 사용하고 있었기 때문에 Netlify 패널 내에서 ENV vars를 설정했을 뿐입니다.

  • 사이트 설정 탭 선택
  • 빌드전개 선택
  • 환경변수까지 스크롤하여 변수 편집을 누릅니다.
  • 키 = CI 및 값 = false로 입력합니다.
  • 저장을 누르고 새 배포를 트리거합니다.

여기에 이미지 설명 입력

다음의 순서에 따라서, 문제가 해결됩니다.

  • 사이트 설정 탭 선택
  • 빌드 및 전개 선택
  • 환경변수까지 스크롤하여 [Edit Variables]를 선택합니다.
  • 키 = CI 및 값 = false로 입력합니다.
  • 캐시 클리어 및 재배치를 누릅니다.

...그리고 즐겁게 보내요.

이 문제는 CI 서버 설정(내 경우 netlify)에 의해 발생합니다.다음의 순서에 따라서, 문제가 해결됩니다.

선택-->Site Settings

선택-->Build and Deploy

아래로 스크롤하여 환경변수를 선택합니다.Edit Variables

기입해 주세요.Key = CI그리고.Value = false

누르다clear cache and redeploy

CI=true는 배포 중에 테스트를 처리하려는 경우 필요하지만 패키지를 통해 플래그를 설정하면 쉽게 아카이브할 수 있습니다.json(도커 파일에 ENV CI=true가 이미 설정되어 있는 경우 제거할 수 있음)

 "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "CI=true react-scripts test"
  }

몇 시간 동안 구글을 검색한 결과, 저는 Azure Devops에서 다음과 같이 일했습니다.

당신의 소포 안에.json

"scripts": {
  ...
  "build": "set \"CI=false\" && react-scripts build
}

주의: 이스케이프된 따옴표는 중요합니다!

제 경우 GitHub repo를 통해 Azure Static 웹 페이지에 리액트 앱을 도입하려고 했습니다.env: CI: false

아주 잘 작동했어요.잠깐 메모만 할게요.이것은 GitHub 액션에서 CI 프로세스를 정의하는 yaml에 적용되었습니다.env 요소에는 들여쓰기가 없습니다(이름과 같은 수준).

yml 파일의 Gitlab CI 작업에서는 아래 스크립트를 제 작업에 추가한 것이 효과가 있었습니다.

script:
- CI=false yarn run build

대응하고 있는 경고를 수정해야 합니다.그 때문에, 전개할 수 없게 됩니다.

Windows 서버에 전개하거나 powershell을 사용하여 환경변수를 다음과 같이 설정할 수 있습니다.

script:
  - $env:CI="false"
  - npm run build

또는 다음과 같이 입력합니다.

$env:CI="false"; npm run build

언급URL : https://stackoverflow.com/questions/62663451/treating-warnings-as-errors-because-process-env-ci-true-failed-to-compile

반응형