[angular] Angular 6에서 ‘ng serve’를 통해 환경을 설정하는 방법
Angular 5.2 앱을 Angular 6으로 업데이트하려고합니다. Angular 업데이트 가이드 ( angular-cli
v6 업데이트 포함)의 지침을 성공적으로 따랐 으며 이제는
ng serve --env=local
그러나 이것은 나에게 오류를 준다 :
알 수없는 옵션 : ‘–env’
여러 환경 ( dev/local/prod
)을 사용하는데 이것이 Angular 5.2에서 작동하는 방식입니다. Angular 6에서 환경을 어떻게 설정합니까?
답변
당신은 새로운 사용해야 configuration
옵션 (이 작품 ng build
과 ng serve
뿐만 아니라를)
ng serve --configuration=local
또는
ng serve -c local
angular.json
파일 을 보면 각 구성 (Aot, Optimizer, 환경 파일 등)에 대한 설정을보다 세밀하게 제어 할 수 있습니다.
"configurations": {
"production": {
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
]
}
}
환경 별 구성 관리에 대한 자세한 정보는 여기 에서 얻을 수 있습니다 .
아래의 다른 응답에서 지적했듯이 새 ‘환경’을 추가해야하는 경우 빌드 작업 및 필요에 따라 서브 및 테스트 작업에 새 구성을 추가해야합니다 .
새로운 환경 추가
편집 : 명확하게하려면 파일 교체를 build
섹션 에서 지정해야합니다 . 따라서 ng serve
특정 environment
파일 ( dev2 ) 과 함께 사용 하려면 먼저 build
새로운 dev2 구성 을 추가하기 위해 섹션을 수정해야 합니다
"build": {
"configurations": {
"dev2": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.dev2.ts"
}
/* You can add all other options here, such as aot, optimization, ... */
],
"serviceWorker": true
},
그런 다음 방금 선언 serve
한 dev2 build
구성을 가리키면서 새 구성을 추가하도록 섹션을 수정하십시오.
"serve":
"configurations": {
"dev2": {
"browserTarget": "projectName:build:dev2"
}
그런 다음 ng serve -c dev2
dev2 구성 파일을 사용하는을 사용할 수 있습니다
답변
이 대답은 좋아 보인다.
그러나
Configuration 'xyz' could not be found in project ...
빌드 오류가 발생하여 오류가 발생했습니다.
업데이트 된 빌드 구성뿐만 아니라 구성도 제공해야
합니다.
따라서 혼란을 남기지 않기 위해 :
--env
에서 지원되지 않습니다angular 6
--env
--configuration
|| 로 변경되었습니다-c
(그리고 지금은 더 강력합니다)- 새로운 환경 파일을 추가하는 것 외에도 다양한 환경을 관리하려면
angular.json
파일을 약간 변경해야 합니다.- 빌드
{ ... "build": "configurations": ...
속성 에 새 구성 추가 - 새로운 빌드 구성 에는 일부만 포함될 수
fileReplacements
있지만 더 많은 옵션을 사용할 수 있습니다. - serve
{ ... "serve": "configurations": ...
속성 에 새 구성 추가 - 새로운 서브 구성 은
browserTarget="your-project-name:build:staging"
- 빌드
답변
당신은 시도 할 수 있습니다: ng serve --configuration=dev/prod
사용하려면 : ng build --prod --configuration=dev
다른 종류의 환경을 사용하기를 바랍니다.
답변
Angular 2-5에 대해서는 Angular의 Multiple Environment 기사를 참조하십시오.
Angular 6 용 ng serve --configuration=dev
참고 : 각도 6에 대해서도 동일한 기사를 참조하십시오. 그러나 어디서나
--env
사용하십시오--configuration
. 각도 6에 잘 작동합니다.
답변
ng serve -c dev
개발 환경에 명령 을
사용할 수 있습니다ng serve -c prod
프로덕션 환경의 에
건물도 동일하게 적용됩니다. ng build -c dev
개발자 빌드에 사용할 수 있습니다
답변
Angular는 더 이상 –env를 지원하지 않으므로 대신 사용해야합니다.
ng serve -c dev
개발 환경과
ng serve -c prod
생산을 위해.
참고 : -c
또는--configuration
답변
Angular 6에서이 명령을 사용하여 빌드하십시오.
ng build --prod --configuration=dev