내부에서 일부 환경 변수를 설정 package.json
하여 npm start
유사한 명령 과 함께 사용하는 방법 은 무엇입니까?
여기 내가 현재 가지고있는 것이 있습니다 package.json
:
{
...
"scripts": {
"help": "tagove help",
"start": "tagove start"
}
...
}
NODE_ENV
시작 스크립트에서 환경 변수 (예 :)를 설정하고 명령 하나만으로 앱을 시작할 수 npm start
있습니다.
답변
스크립트 명령에서 환경 변수를 설정하십시오.
...
"scripts": {
"start": "node app.js",
"test": "env NODE_ENV=test mocha --reporter spec"
},
...
그런 다음 process.env.NODE_ENV
앱에서 사용 하십시오.
참고 : env
여러 플랫폼에서 작동합니다. Mac / Linux에만 관심이 있다면 생략해도됩니다.
답변
NPM 패키지 cross-env 만 사용하십시오 . 매우 쉽습니다. Windows, Linux 및 모든 환경에서 작동합니다. &&를 사용하여 다음 작업으로 이동하지 마십시오. 환경을 설정 한 후 다음 작업을 시작하면됩니다. 여기 의견 중 하나에 대한 제안에 대해 @mikekidder 에게 감사드립니다 .
설명서에서 :
{
"scripts": {
"build": "cross-env NODE_ENV=production OTHERFLAG=myValue webpack --config build/webpack.config.js"
}
}
여러 전역 변수를 설정하려면 연속적으로 변수를 지정하고 명령을 실행하십시오.
궁극적으로 (스폰을 사용하여) 실행되는 명령은 다음과 같습니다.
webpack --config build/webpack.config.js
NODE_ENV
환경 변수 간 ENV 설정 될
답변
미래의 노드 탐색기를 위해 여기에 2 센트를 추가하고 싶었습니다. 내 우분투 14.04에서 NODE_ENV=test
작동하지 않았는데, export NODE_ENV=test
후에도 NODE_ENV=test
일하기 시작한 이상한 것을 사용해야 했습니다.
Windows에서 말했듯이 set NODE_ENV=test
크로스 플랫폼 솔루션의 경우 크로스 환경 라이브러리가 트릭을 수행하지 않는 것처럼 보이므로 실제로이 작업을 수행하려면 라이브러리가 필요합니까?
export NODE_ENV=test || set NODE_ENV=test&& yadda yadda
그렇지 않으면 Windows가 인식 할 수없는 export NODE_ENV
명령 인 : D 에서 충돌하므로 세로 막대가 필요합니다 . 후행 공간에 대해서는 몰라 그러나 나는 그것들도 제거했는지 확신합니다.
답변
여러 환경 변수로 작업하는 경우가 많으므로 별도의 .env
파일 로 유지하는 것이 좋습니다 (소스 제어에서이 변수 를 무시하십시오).
VAR_A=Hello World
VAR_B=format the .env file like this with new vars separated by a line break
그런 다음 export $(cat .env | xargs) &&
스크립트 명령 앞에 추가 하십시오.
예:
{
...
"scripts": {
...
"start": "export $(cat .env | xargs) && echo do your thing here",
"env": "export $(cat .env | xargs) && env",
"env-windows": "export $(cat .env | xargs) && set"
}
...
}
테스트를 위해 npm run env
(linux) 또는 npm run env-windows
(windows) 를 실행하여 env 변수를 볼 수 있습니다 .
답변
다음을 교체하여 Windows에서 시도하십시오 YOURENV
.
{
...
"scripts": {
"help": "set NODE_ENV=YOURENV && tagove help",
"start": "set NODE_ENV=YOURENV && tagove start"
}
...
}
답변
갑자기 actionhero가 다음 코드를 사용하고 있음을 발견했습니다 --NODE_ENV=production
. 시작 스크립트 명령 옵션을 전달 하여 문제를 해결했습니다 .
if(argv['NODE_ENV'] != null){
api.env = argv['NODE_ENV'];
} else if(process.env.NODE_ENV != null){
api.env = process.env.NODE_ENV;
}
package.json 또는 init 스크립트에서 환경 변수를 설정하는 더 나은 방법을 알고 있거나 다른 사람이 앱을 부팅하는 다른 사람의 답변을 받아 주셔서 감사합니다.
답변
더 큰 환경 변수 세트를 사용하거나 재사용하려는 경우을 사용할 수 있습니다 env-cmd
.
./.env
파일:
# This is a comment
ENV1=THANKS
ENV2=FOR ALL
ENV3=THE FISH
./package.json
:
{
"scripts": {
"test": "env-cmd mocha -R spec"
}
}