npm scripts : macOS / windows 환경 명령어 맞추기

2022. 3. 29. 19:23
반응형

// package.json

"scripts" : {
	"build": "export REACT_APP_VERSION=$(git rev-parse --short HEAD) && react-scripts build",
}

 mac에서 작성한 위 명령어를 윈도우 bash에서 실행하면,

 

위와 같이 export 라는 명령어를 사용할 수 없다는 메시지가 뜬다.

 

검색해본 결과, export를 set으로 바꾸면 실행된다는 정보를 얻어 바꾸어보았으나,

빌드된 결과(build/static/js/main블라블라.js 파일)를 확인해보면 아래와 같이

git rev-parse --short HEAD라는 문자열이 그대로 들어가 있다.

 

(원래 의도는 REACT_APP_VERSION: "da0934b" 와 같은 커밋 넘버가 들어가길 바랐음)

 

리눅스 계열과 윈도우 계열의 shell 및 명령어 사용법이 달라서 발생하는 문제로,

아래와 같이 수정해서 해결할 수 있었다.

 

// 수정 전
"build": "export REACT_APP_VERSION=$(git rev-parse --short HEAD) && react-scripts build"

// 수정 후
"build:window": "for /f \"delims=\" %a in ('git rev-parse --short HEAD') do @set REACT_APP_VERSION=%a && react-scripts build"

 

 

참고 사이트

https://superuser.com/questions/1446257/how-to-set-the-value-of-an-environment-variable-to-the-output-of-a-command-in-a

 

How to set the value of an environment variable to the output of a command in a WIndows batch file?

How can I set an environment variable to the output of a command in a Windows batch file? The command will return a single value of around 32 characters (e.g. type myfile.txt).

superuser.com

 

반응형

BELATED ARTICLES

more