답변:
오류가 다음과 같이 실행하려고 시도한 것 같습니다 (Linux에서 작동 함)
NODE_ENV=development node foo.js
Windows에서 동등한 것은
SET NODE_ENV=development
node foo.js
동일한 명령 쉘에서 실행 중입니다. set NODE_ENV가 작동하지 않는다고 언급했지만 어떻게 / 언제 실행했는지는 명확하지 않았습니다.
이것을 위해 모듈을 작성했습니다 : win-node-env .
환경 변수 NODE_ENV.cmd
를 설정 NODE_ENV
하고 나머지 명령과 그 인수로 자식 프로세스를 생성하는를 만듭니다 .
(전역 적으로) 설치하고 npm 스크립트 명령을 실행하면 자동으로 작동합니다.
npm install -g win-node-env
&
명령 사이 에 Windows 용으로도 사용 됩니다. 처럼,
"scripts": {
"start": "SET NODE_ENV=development & nodemon app/app.js",
}
NODE_ENV
'development'( 't'와 '&'사이의 공백은에 의해 NODE_ENV
.trim()
을하기 위해 나중에 가치를 가져야합니다 process.env.NODE_ENV == 'production'
. 어쨌든 oneliner에서 이것을 피하기 위해?
"test-unit": "SET NODE_ENV=test & mocha --require co-mocha 'test.js'"
잘못된 "test-unit": "SET NODE_ENV=test & mocha --require co-mocha test.js"
사실 . js 파일 주위 를 제거해야 ' '
합니다.
npm install "cross-env"
기준 치수.cross-env NODE_ENV=development node foo.js
. 그런 다음 like를 실행할 수 있습니다 npm run build
.cross-env
의 종속성package.json
npm install --save-dev cross-env
; 이것은 또한 'env' is not recognized as an internal or external command
npm 스크립트가 말했을 때 오류 를 해결하는 데 도움이됩니다 env VARNAME=varvalue && ...
(env를 제거하고 대신 cross-env를 삽입하십시오). 개발자가 전 세계적으로 무언가를 설치하거나 다른 플랫폼에 대해 다른 npm 스크립트를 가질 필요가 없습니다!
사용은 승리 노드-ENV를 사용하는 경우 그것은 단지 당신의 명령 아래 실행 cmd
하거나 power shell
또는 git bash
:
npm install -g win-node-env
그 후 모든 것이 Linux와 같습니다.
set NODE_ENV=production & nodemon app/app.js
NODE_ENV가 끝에 공백 을 포함하게합니다 .
process.env.NODE_ENV == 'production'; //false
process.env.NODE_ENV == 'production '; //true
여기 에 의견 에서 언급했듯이 이것을 대신 사용하십시오.
NODE_ENV=production&& nodemon app/app.js
NODE_ENV="production"
?
&
과 더블 의 차이점은 &&
무엇입니까? 둘 다 나를 위해 일하는 것 같습니다.
Windows를 수용하도록 스크립트를 변경하는 것은 큰 고통입니다. 적절한 Windows 번역을 파악하고 2 세트의 스크립트를 유지하는 것은 인생을 살아갈 수있는 방법이 아닙니다.
Windows에서 bash를 사용하도록 npm을 구성하는 것이 훨씬 쉽고 스크립트는 그대로 실행됩니다.
간단하게 실행하십시오 npm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"
. bash 실행 파일의 경로가 시스템에 맞는지 확인하십시오. 변경 사항을 적용하려면 터미널의 새 인스턴스를 시작해야합니다.
아래 스크린 샷은 이점을 보여줍니다.
함께 힘내 배쉬와 가진 문제를 사용하는 사람들을 위해 npm run <script>
,
Git Bash를 사용하여 스크립트를 실행하도록 npm을 설정하십시오.
npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
(설치에 따라 경로를 변경하십시오)
그런 다음 npm은 Git Bash와 함께 스크립트를 실행하므로 이러한 사용법 NODE_ENV=
은 올바르게 작동합니다.
Windows의 경우 git bash를 열고 시도하십시오.
NODE_ENV=production node app.js
npm <scripts_entry>
구문이 다르지만 동등한 의미로 오류가 발생합니다. env var name을 실행 파일로 취급합니다.
npm run <script>
는 Windows cmd를 기본값으로 사용하여 명령을 실행합니다. Git Bash를 사용하도록 설정할 수 있습니다. npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
그런 다음 npm run
Git Bash를 사용하여 스크립트를 실행합니다.
다른 사람이 나와 같은 오류에 대한 해결책을 찾으려고 여기에 온 경우 :
'env' is not recognized as an internal or external command
내가 얻은 이유는 Mac 솔루션에서 각도 솔루션을 Windows 10 데스크톱으로 마이그레이션했기 때문입니다. 이것이 내가 해결 한 방법입니다.
운영 npm install --save-dev cross-env
내 package.json 파일로 이동하여 모든 스크립트 참조를 env <whatever>
에서cross-env <whatever>
그런 다음과 같은 명령은 npm run start:some_random_environment_var
이제 Windows 10에서 정상적으로 실행됩니다.