답변:
Angular 버전 7 이 공식 Angular 블로그 링크 로 출시되었습니다 . 자세한 내용은 공식 각도 업데이트 가이드 https://update.angular.io 를 참조하세요. 이 단계는 Angular Material을 사용하는 기본 Angular 6 앱에서 작동합니다.
ng update @angular/cli
ng update @angular/core
ng update @angular/material
Angular 버전 6 이 공식 Angular 블로그 링크 로 출시되었습니다 . 아래에서 일반적인 업그레이드 단계를 언급했지만 업데이트 전후에 코드를 변경하여 v6에서 작동하도록해야합니다. 자세한 정보는 공식 웹 사이트 https://update.angular.io를 방문 하세요 .
업그레이드 단계 (대부분 Angular Material을 사용하는 기본 Angular 앱에 대한 공식 Angular 업데이트 가이드 에서 가져옴) :
업데이트하지 않는 경우 NodeJS 버전이 8.9 이상인지 확인하십시오.
Angular cli를 전역 및 로컬로 업데이트 하고 다음을 실행하여 이전 구성 .angular-cli.json 을 새 angular.json 형식으로 마이그레이션합니다 .
npm install -g @angular/cli
npm install @angular/cli
ng update @angular/cli
다음을 실행하여 모든 Angular 프레임 워크 패키지를 v6으로 업데이트하고 올바른 버전의 RxJS 및 TypeScript를 업데이트합니다.
ng update @angular/core
다음을 실행하여 Angular Material을 최신 버전으로 업데이트하십시오.
ng update @angular/material
RxJS v6은 v5에서 주요 변경 사항이 있으며, v6은 애플리케이션 작동을 유지하는 하위 호환성 패키지 rxjs-compat를 제공하지만 rxjs-compat에 의존하지 않도록 TypeScript 코드를 리팩터링해야합니다. TypeScript 코드를 리팩터링하려면 다음을 실행하십시오.
npm install -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json
참고 : 모든 종속성이 RxJS 6으로 업데이트되면 번들 크기가 증가함에 따라 rxjs- compat를 제거하십시오. 자세한 내용은이 RxJS 업그레이드 가이드 를 참조하십시오.
npm uninstall rxjs-compat
ng serve
그것을 확인하기 위해 실행 했습니다.
빌드 오류가 발생하면 https://update.angular.io 에서 자세한 정보를 참조하십시오 .
rxjs를 6.0.0- beta.0으로 업그레이드 하십시오. 자세한 내용은이 RxJS 업그레이드 가이드 를 참조하십시오. RxJS v6에는 주요 변경 사항이 있으므로 먼저 코드를 최신 RxJS 버전과 호환되도록 만드십시오.
NodeJS 버전을 8.9+로 업데이트합니다 (angular cli 6 버전에서 필요함).
Angular cli 글로벌 패키지를 다음 버전으로 업데이트하십시오.
npm uninstall -g @angular/cli
npm cache verify
npm 버전이 5 미만이면 다음을 사용하십시오. npm cache clean
npm install -g @angular/cli@next
package.json 파일의 각도 패키지 버전을 다음과 같이 변경하십시오. ^6.0.0-rc.5
"dependencies": {
"@angular/animations": "^6.0.0-rc.5",
"@angular/cdk": "^6.0.0-rc.12",
"@angular/common": "^6.0.0-rc.5",
"@angular/compiler": "^6.0.0-rc.5",
"@angular/core": "^6.0.0-rc.5",
"@angular/forms": "^6.0.0-rc.5",
"@angular/http": "^6.0.0-rc.5",
"@angular/material": "^6.0.0-rc.12",
"@angular/platform-browser": "^6.0.0-rc.5",
"@angular/platform-browser-dynamic": "^6.0.0-rc.5",
"@angular/router": "^6.0.0-rc.5",
"core-js": "^2.5.5",
"karma-jasmine": "^1.1.1",
"rxjs": "^6.0.0-uncanny-rc.7",
"rxjs-compat": "^6.0.0-uncanny-rc.7",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.5.0",
"@angular/cli": "^6.0.0-rc.5",
"@angular/compiler-cli": "^6.0.0-rc.5",
"@types/jasmine": "2.5.38",
"@types/node": "~8.9.4",
"codelyzer": "~4.1.0",
"jasmine-core": "~2.5.2",
"jasmine-spec-reporter": "~3.2.0",
"karma": "~1.4.1",
"karma-chrome-launcher": "~2.0.0",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^0.2.0",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"postcss-loader": "^2.1.4",
"protractor": "~5.1.0",
"ts-node": "~5.0.0",
"tslint": "~5.9.1",
"typescript": "^2.7.2"
}
다음으로 Angular cli 로컬 패키지를 다음 버전으로 업데이트하고 위에서 언급 한 패키지를 설치합니다.
rm -rf node_modules dist # use rmdir /S/Q node_modules dist in Windows
Command Prompt; use rm -r -fo node_modules,dist in Windows PowerShell
npm install --save-dev @angular/cli@next
npm install
Angular CLI 구성 형식이 angular cli 6.0.0-rc.2 버전에서 변경되었으며 다음 명령을 실행하여 기존 구성을 자동으로 업데이트 할 수 있습니다. 이전 구성 파일 .angular-cli.json 을 제거 하고 새 angular.json 파일 을 작성 합니다.
ng update @angular/cli --migrate-only --from=1.7.4
참고 :- "Angular 컴파일러에 TypeScript> = 2.7.2 및 <2.8.0이 필요하지만 대신 2.8.3을 찾았습니다."라는 오류가 표시되는 경우. 다음 명령을 실행하십시오.
npm install typescript@2.7.2
bash: rxjs-5-to-6-migrate: command not found
. 이견있는 사람?
ng update @angular/core
ionic 프로젝트 폴더에서 실행할 때 오류가 발생합니다Invalid range: "*"
"@angular-devkit/build-angular"
을 찾을 수 없습니다 ... 그래서 npm install @angular-devkit/build-angular --save-dev
. 나는 이전 rxjs-의 compat를 사용하고 라이브러리를 업데이트했다 이외처럼 ng update @ngx-translate/core
, ng update @ng-bootstrap/ng-bootstrap
그들 중 몇 가지가 제대로 업데이트되지 않았기 때문에.
Angular 6이 방금 출시되었습니다.
https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4
내 소규모 프로젝트 중 하나에서 효과가 있었던 것은 다음과 같습니다.
예를 들어 package.json에서 실행 스크립트를 업데이트해야 할 수 있습니다. "app"및 "environment"와 같은 플래그를 사용하는 경우 이들은 각각 "project"및 "configuration"으로 업데이트되었습니다.
자세한 가이드는 https://update.angular.io/ 를 참조 하세요 .
Angular 5에서 Angular 6으로의 단계별 업그레이드 세부 정보를 확인하십시오. 여기에서는 업그레이드 중에 발생하는 문제와 해결 방법에 대한 세부 정보를 제공합니다.
{
"rulesDirectory": [
"node_modules/rxjs-tslint"
],
"rules": {
"rxjs-collapse-imports": true,
"rxjs-pipeable-operators-only": true,
"rxjs-no-static-observable-methods": true,
"rxjs-proper-imports": true
}
}
운영자 이름 변경 :
do -> tap,
catch -> catchError,
switch -> switchAll,
finally -> finalize
모든 연산자는 rxjs / operators로 이동했습니다.
import { map, filter, reduce } from 'rxjs/operators';
관찰 가능한 생성 방법이 rxjs로 이동되었습니다.
import { Observable, Subject, of, from } from 'rxjs';
당신 준비 다 됐어요. Angular 6에 오신 것을 환영합니다. :) 업그레이드 방법에 대한 내 블로그 게시물을 확인하십시오.
Angular 5에서 Angular 6으로 업데이트하려면 아래 주석을 실행하십시오.
NPM 사용 (노드 버전 8 이상이 있는지 확인)
npm uninstall -g @angular/cli
npm cache clean
npm install -g @angular/cli@latest
npm i @angular/cli --save
원사 사용
yarn remove @angular/cli
yarn global add @angular/cli
yarn add @angular/cli
ng update @angular/cli
ng update @angular/core
ng update @angular/material
ng update rxjs
일반적으로 RxJS 가져 오기 및 연산자가 사용되는 모든 곳에서 코드를 업데이트해야하지만 고맙게도 대부분의 무거운 작업을 처리하는 패키지가 있습니다.
npm i -g rxjs-tslint
//or using yarn
yarn global add rxjs-tslint
그런 다음 rxjs-5-to-6-migrate를 실행할 수 있습니다.
rxjs-5-to-6-migrate -p src/tsconfig.app.json
마지막으로 rxjs-compat 제거
npm uninstall rxjs-compat
// or using Yarn
yarn remove rxjs-compat
이 링크 https://alligator.io/angular/angular-6/을 참조하십시오.
따라서 package.json
파일 을 수동으로 업데이트해야 합니다.
그런 다음 실행
npm update
npm install --save rxjs-compat
npm i -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json
bash: rxjs-5-to-6-migrate: command not found
rxjs-5 대 6 마이그레이션 명령을 실행하려고 할 때. 이견있는 사람?
Vinay Kumar가 글로벌 설치된 Angular CLI를 업데이트하지 않을 것이라고 지적했듯이. 전역 적으로 업데이트하려면 다음 명령을 사용하십시오.
npm uninstall -g @angular/cli
npm cache clean
npm install -g @angular/cli@latest
기존 프로젝트를 업데이트하려면 기존 프로젝트를 수정해야 하며 프로젝트 내에서 package.json 을 변경해야 합니다.
Angular 자체에는 주요 변경 사항이 없지만 RxJS에 있으므로 rxjs-compat 라이브러리를 사용하여 레거시 코드로 작업하는 것을 잊지 마십시오.
npm install --save rxjs-compat
Angular CLI http://bmnteam.com/angular-cli-installation/ 설치 / 업데이트에 대한 좋은 기사를 썼습니다.
다음 명령을 실행하기 만하면됩니다.
ng update
참고 : 이것은 전체적으로 업데이트되지 않습니다.
이것이 내가 작동하는 방법입니다.
내 환경 :
Angular CLI 글로벌 : 6.0.0, 로컬 : 1.7.4, Angular : 5.2, Typescript 2.5.3
참고 : 활성화하려면
ng Update
먼저 Angular CLI 6.0을 설치해야합니다.npm install -g @angular/cli or npm install @angular/cli
ng update //update Angular Package core/common/complier... to 6.0.0
ng update @angular/cli //change angular-cli.json to angular.json
angular-material 5.4.2, ngx-translate 9.1.1, ng-bootstrap / ng-bootstrap 1.1.1이있는 경우 선택 사항 :
ng update @angular/material //upgrade to 6.0.1
npm install @ngx-translate/core@10.0.1 --save //upgrade ngX translate to 10.0.1 for Angular 6
5 npm install --save @ng-bootstrap/ng-bootstrap@2.0.0 //for ng-bootstrap
Observable을 사용하고 오류가 발생하는 경우 :
ERROR in node_modules/rxjs/Observable.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/Observable'. node_modules/rxjs/observable/of.d.ts(1,15): error TS2307: Cannot find module 'rxjs-compat/observable/of'.
변화: import { Observable } from "rxjs/Observable"; import { of } from 'rxjs/observable/of';
에
import { Observable, of } from "rxjs";
Angular CLI 문제 : https://github.com/angular/angular-cli/issues/10621
2/4/5를 Angular 6으로 업그레이드하는 몇 가지 단계가 있습니다.
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install
"angular.json"관련 문제를 해결하려면 :-
ng update @angular/cli --migrate-only --from=1.7.4
스토어 마이그레이션
https://github.com/ngrx/platform/blob/master/MIGRATION.md#ngrxstore
RXJS 마이그레이션
https://www.academind.com/learn/javascript/rxjs-6-what-changed/
이것이 당신을 도울 것입니다 :)