Windows에서 NODE_ENV= 운영을 설정하려면 어떻게 해야 합니까?
Ubuntu에서는 매우 간단합니다. 다음을 사용하여 응용 프로그램을 실행할 수 있습니다.
$ NODE_ENV=production node myapp/app.js
그러나 Windows(윈도우)에서는 이 기능을 하지 않습니다.속성을 설정할 수 있는 구성 파일이 있습니까?
현재 Windows 버전에서는 Powershell을 기본 셸로 사용하므로 다음을 사용합니다.
$env:NODE_ENV="production"
아래 @jsalonen의 답변에 따라.CMD(더 이상 유지 관리되지 않음)에 있는 경우
set NODE_ENV=production
이 작업은 Node.js 응용 프로그램을 실행하려는 명령 프롬프트에서 실행해야 합니다.
위의 행은 명령을 실행하는 명령 프롬프트에 대한 환경 변수 NODE_ENV를 설정합니다.
단일 명령 프롬프트 이상으로 지속되도록 환경 변수를 전체적으로 설정하려면 제어판의 시스템에서 도구를 찾을 수 있습니다(또는 시작 메뉴의 검색 상자에 '환경'을 입력하여).
교차 플랫폼이라는 고유한 구문을 사용하여 환경 변수를 정의하는 데 많은 도움이 될 수 있는 멋진 Node.js 패키지를 방금 발견했습니다.
https://www.npmjs.com/package/cross-env
다음과 같은 내용을 작성할 수 있습니다.
cross-env NODE_ENV=production my-command
그것은 꽤 편리합니다!Windows 또는 Unix 관련 명령이 더 이상 없습니다!
PowerShell에서:
$env:NODE_ENV="production"
Windows에서 Node.js를 시작하는 호출과 동일한 줄에 매개 변수를 설정할 수 있다면 이상적입니다.다음 사항을 주의 깊게 살펴보고 명시된 대로 실행합니다.
다음 두 가지 옵션이 있습니다.
명령줄에서:
set NODE_ENV=production&&npm start
또는
set NODE_ENV=production&&node index.js
Windows에서 작동하는 비결은 "&&" 앞뒤의 공백을 제거해야 한다는 것입니다.패키지를 구성했습니다.아래의 start_windows(아래 참조)가 있는 json 파일.그런 다음 명령줄에서 "npm run start_windows"를 실행합니다.
//package.json "scripts": { "start": "node index.js" "start_windows": "set NODE_ENV=production&&node index.js" }
사용할 수 있습니다.
npm run env NODE_ENV=production
Windows(윈도우)와 Unix(유닉스) 모두에서 호환되기 때문에 가장 적합한 방법일 것입니다.
npm 스크립트 실행 설명서에서 다음을(를) 참조하십시오.
env 스크립트는 스크립트가 런타임에 사용할 수 있는 환경 변수를 나열하는 데 사용할 수 있는 특수 기본 제공 명령입니다.패키지에 "env" 명령이 정의되어 있으면 기본 제공 명령보다 우선합니다.
*nix에서처럼 명령을 실행할 수 있는 모듈 win-node-env를 작성했습니다.
NODE_ENV=production node myapp/app.js
다음을 생성하여 작동합니다.NODE_ENV.cmd
그것이 설정합니다.NODE_ENV
명령의 나머지 부분과 해당 인수를 사용하여 환경 변수 및 하위 프로세스를 생성합니다.
설치(글로벌)하고 npm 스크립트 명령을 실행하기만 하면 자동으로 작동합니다.
npm install -g win-node-env
Visual Studio 2013에서 Windows 7 64비트에서 Node.js를 사용한 경험은 사용해야 한다는 것입니다.
setx NODE_ENV development
cmd 창에서.그리고 새로운 값을 인식하려면 Visual Studio를 다시 시작해야 합니다.
설정된 구문은 설정된 cmd 창 동안만 유지됩니다.
Node.js의 단순 테스트:
console.log('process.env.NODE_ENV = ' + process.env.NODE_ENV);
set를 사용할 때는 'undefined'를 반환하며, setx를 사용하고 Visual Studio를 다시 시작할 때는 'development'를 반환합니다.
NTVS와 함께 Visual Studio를 사용하는 경우 프로젝트 속성 페이지에서 환경 변수를 설정할 수 있습니다.
보시는 것처럼 구성 및 플랫폼 드롭다운이 비활성화되어 있습니다(왜 그런지에 대해서는 자세히 알아본 적이 없습니다). 그러나 만약 당신이 그것을 편집한다면.njsproj
파일은 다음과 같습니다.
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugSymbols>true</DebugSymbols>
<Environment>NODE_ENV=development</Environment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DebugSymbols>true</DebugSymbols>
<Environment>NODE_ENV=production</Environment>
</PropertyGroup>
그러면 '디버그/릴리스' 드롭다운이 Node.js를 시작하기 전에 변수를 설정하는 방법을 제어합니다.
비명령줄 방법은 다음과 같습니다.
윈도우즈 7 또는 10에서 시작 메뉴 검색 상자에 환경을 입력하고 시스템 환경 변수 편집을 선택합니다.
또는 제어판\시스템 및 보안\으로 이동합니다.시스템을 선택하고 고급 시스템 설정을 클릭합니다.
고급 탭을 선택한 상태에서 시스템 속성 대화 상자가 열립니다.아래쪽에는 환경 변수...가 표시됩니다.단추를 채우다이거 클릭.
환경 변수 대화 상자가 열립니다.
아래쪽의 시스템 변수에서 새로 만들기...를 선택합니다.새 시스템 변수 대화 상자가 열립니다.
변수 이름과 값을 입력하고 확인을 클릭합니다.
process.env에서 새 변수를 사용하려면 모든 cmd 프롬프트를 닫고 서버를 다시 시작해야 합니다.그래도 표시되지 않으면 컴퓨터를 다시 시작합니다.
하려면(PowerShell 이후)&&
허용되지 않음):
($env:NODE_ENV="production") -and (node myapp/app.js)
서버가 수행하는 작업의 텍스트 출력이 억제되어 있으며, 수정 가능한지는 확실하지 않습니다. (@jsalonen의 답변으로 확장)
분명히 말씀드리자면, 그리고 그들의 머리카락을 뽑았을지도 모르는 다른 사람들을 위해...
Windows에서 gitbash를 사용하는 경우set node_env=production&& node whatever.js
작동하지 않는 것 같습니다.대신 네이티브 cmd를 사용합니다.그 다음, 사용set node_env=production&& node whatever.js
예상대로 작동합니다.
사용 사례:
워크플로우가 훨씬 빠르기 때문에 Windows에서 개발하지만 애플리케이션의 개발 관련 미들웨어가 운영 환경에서 실행되지 않는지 확인해야 했습니다.
vs 코드 터미널을 사용하는 경우 이 명령을 사용해야 합니다.
$env:NODE_ENV="production"
파워셸 타입 1위
$env:NODE_ENV="production"
그다음 타자
node fileName.js
모든 출력을 완벽하게 표시할 수 있습니다.
Windows의 경우
NODE_ENV= 개발 및 반응 테스트 시작 설정
Ubuntu, Linux, macOs의 경우
NODE_ENV= 개발 반응 테스트 시작
GITBASH 터미널을 사용하는 경우"set NODE_ENV=production"
작동하지 않을 것입니다. 당신이 할 수 있는 것은 "export"를 입력하는 것입니다.NODE_ENV=production"
set NODE_ENV=production & node server.js
다중 환경 변수의 경우.env
파일이 더 편리합니다.
# .env.example, committed to repo
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
# .env, private, .gitignore it
DB_HOST=real-hostname.example.com
DB_USER=real-user-name
DB_PASS=REAL_PASSWORD
다음과 같이 사용하면 사용할 수 있습니다.
- 설치 대상
npm install --save-dev dotenv-safe
. - 코드에 포함합니다(시작할 때가 가장 좋습니다).
index.js
) 및 다음 명령과 함께 직접 사용합니다.
require('dotenv').load()
console.log(process.env.DB_HOST)
변수가 "정의"된 경우 프로그램이 빠르게 실패합니다..env.example
환경 변수로 설정 해제되거나.env
.
NODE_ENV 또는 다른 환경 변수가 올바른 값을 제공하지 않는 경우 VS 코드를 다시 시작합니다.이 작업은 다시 시작한 후에 작동합니다.
마지막으로 제가 볼 수 있는 최선의 방법은 다음과 같습니다.
"set-env-qa": "npm run env APP_ENV=qa",
"start:qa": "npm run set-env-qa && react-native start",
이렇게 하면 프로그램에 대한 올바른 환경 설정을 얻을 수 있습니다.react-native-start를 원하는 다음 명령으로 대체합니다.
이제 명령이 작동하므로 다음 플러그인을 설치할 수 있습니다.
npm install -g win-node-env
이것은 변수를 설정하지 않지만 많은 경우에 유용합니다.저는 이것을 생산에 사용하는 것을 추천하지는 않겠지만, 만약 당신이 npm을 가지고 놀고 있다면 괜찮을 것입니다.
npm install --production
"&&" 없이 꿀꺽 작업을 실행하기 위해 npm 스크립트를 사용했습니다.
NODE_ENV= 테스트 사례 npm seed-db 실행
Windows 10에서 사용한 적이 있습니다. $env:NODE_ENV="Production"
이것은 제 vscode 터미널에서 작동했습니다.그러나 서버가 수신 중이면 먼저 중지하고 환경 변수를 설정한 후 앱을 다시 시작해야 합니다.이런 식으로 저는 효과가 있었습니다.
환경 변수를 설정하고 동일한 줄에서 npm 스크립트를 실행하려는 경우 다음을 사용합니다.
$env:BASE_URL="https://example.com"; npm run __your_npm_script__
vcode의 gitbash 터미널의 경우 set NODE_ENV 대신 NODE_ENV 내보내기
는 것 같습니다.
{
"start_windows": "set NODE_ENV=test"
}
저한테는 안 먹혀요현재 Windows 컴퓨터에서 이 작업을 시도하고 있습니다.다음을 누를 때:
npm run start_windows
콘솔에서 오류 없이 실행되지만 에코를 시도할 때
echo %NODE_ENV%
아무것도 나오지 않는다는 것은 존재하지 않는다는 것과 전혀 설정되지 않았다는 것을 의미합니다.
언급URL : https://stackoverflow.com/questions/9249830/how-can-i-set-node-env-production-on-windows
'it-source' 카테고리의 다른 글
열이 동일한 유형이지만 MariaDB 제약 조건이 잘못 형성되었습니다. (0) | 2023.06.10 |
---|---|
오류: Objective-C 모듈 'Firebase'를 빌드할 수 없습니다. (0) | 2023.06.10 |
Vuex - 로컬 상태 복사본을 수정하면 변환 오류가 발생함 (0) | 2023.06.10 |
스크립트 .d.ts 파일 형식의 검색 경로 (0) | 2023.06.10 |
TypeScript 컴파일러용 *.d.ts 파일을 제외하는 방법은 무엇입니까? (0) | 2023.06.10 |