如何從Angular 5 App升級到Angular 6
在這篇文章中,您將學習 如何更新或移植Angular 5應用程式(使用Angular 5.1或Angular 5.2版本)來使用Angular 6.0.0。
以下是一些涵蓋的要點:
- 先決條件
- 將Angular 5移植到Angular 6.0.0應用的升級/更新步驟
先決條件
在開始遷移之前,需要完成以下工作:
- 確保您的
NodeJS
版本是Node 8
或更高版本。 - 確保你的程式碼使用
HttpClientModule
和HttpClient
服務,而不是HttpModule
和Http
服務。 - 確保從
@ angular /
動畫而不是@ angular / core
匯入動畫服務。
升級/更新Angular 5. *
到Angular 6.0.0
需要將以下命令作為將Angular 5.1
或Angular 5.2
應用程式遷移到Angular 6. *
的一部分來執行。
在全域性和本地更新Angular CLI
:以下命令將全域性更新Angular CLI
(-g選項)並在本地更新。
sudo npm install -g @angular/clisudo npm install @angular/cli
更新package.json
:執行以下命令以使用Angular 6. *
更新package.json
檔案。
sudo ng update @angular/cli
這是我的package.json
檔案在執行上述命令之前的樣子。請注意以下一些更改:
所有依賴關係和
devDependencies
從版本5.2。*更新到版本6.0.0rxjs從版本5.5.6遷移到版本6.1.0打字稿從版本2.5.3遷移到版本2.7.2
{"name": "rbot-ui","version": "0.0.0","license": "MIT","scripts": {"ng": "ng", "start": "ng serve", "build": "ng build --prod", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e"},"private": true,"dependencies": { "@angular/animations": "^5.2.10", "@angular/common": "^5.2.0", "@angular/compiler": "^5.2.0", "@angular/core": "^5.2.0", "@angular/forms": "^5.2.0", "@angular/http": "^5.2.0", "@angular/platform-browser": "^5.2.0", "@angular/platform-browser-dynamic": "^5.2.0", "@angular/router": "^5.2.0", "@angular/service-worker": "^5.2.0", "core-js": "^2.4.1", "rxjs": "^5.5.6", "zone.js": "^0.8.19"},"devDependencies": { "@angular/cli": "~1.7.3", "@angular/compiler-cli": "^5.2.0", "@angular/language-service": "^5.2.0", "@types/jasmine": "~2.8.3", "@types/jasminewd2": "~2.0.2", "@types/node": "~6.0.60", "codelyzer": "^4.0.1", "jasmine-core": "~2.8.0", "jasmine-spec-reporter": "~4.2.1", "karma": "~2.0.0", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "^1.2.1", "karma-jasmine": "~1.1.0", "karma-jasmine-html-reporter": "^0.2.2", "protractor": "~5.1.2", "ts-node": "~4.1.0", "tslint": "~5.9.1", "typescript": "~2.5.3"}}
這是執行ng update
命令後新的package.json
檔案的外觀。
{"name": "rbot-ui","version": "0.0.0","license": "MIT","scripts": {"ng": "ng", "start": "ng serve", "build": "ng build --prod", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e"},"private": true,"dependencies": { "@angular/animations": "6.0.0", "@angular/common": "6.0.0", "@angular/compiler": "6.0.0", "@angular/core": "6.0.0", "@angular/forms": "6.0.0", "@angular/http": "6.0.0", "@angular/platform-browser": "6.0.0", "@angular/platform-browser-dynamic": "6.0.0", "@angular/router": "6.0.0", "@angular/service-worker": "6.0.0", "core-js": "^2.4.1", "rxjs": "^6.1.0", "zone.js": "~0.8.26"},"devDependencies": { "@angular/cli": "6.0.0", "@angular/compiler-cli": "6.0.0", "@angular/language-service": "6.0.0", "@types/highcharts": "^5.0.22", "@types/jasmine": "~2.8.3", "@types/jasminewd2": "~2.0.2", "@types/node": "~6.0.60", "codelyzer": "^4.0.1", "jasmine-core": "~2.8.0", "jasmine-spec-reporter": "~4.2.1", "karma": "~2.0.0", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "^1.2.1", "karma-jasmine": "~1.1.0", "karma-jasmine-html-reporter": "^0.2.2", "protractor": "~5.1.2", "ts-node": "~4.1.0", "tslint": "~5.9.1", "typescript": "2.7.2"}}
Update @ Angular / Core
:執行以下命令來更新Angular
核心。
sudo ng update @angular/core
Update @ Angular / Material
:如果您在專案中使用了Angular Material
,請執行以下命令更新@ angular / material
。
sudo ng update @angular/material
更新其他依賴項:執行諸如ng update
之類的命令來識別和更新其他依賴項。如果一切都很好,您應該看到以下訊息:我們分析了您的package.json
,並且所有內容似乎都是按順序排列的。幹得好!
更新@ Angular / CLI
從1.7.3
到最新版本:Angular 6.0.0
需要angular.json
檔案。在情況下,你用的1.7角CLI的版本。* ,你將不得不升級。否則,你會得到錯誤,如本地工作區檔案(’angular.json
‘)無法找到。
sudo ng update @angular/cli --migrate-only --from=1.7.3
如果使用script = true
配置Typescript
,則需要在tsconfig.json
的編譯器選項中新增以下內容
"compilerOptions": {... "strictPropertyInitialization": false}
以上,你應該全部設定。執行命令,ng
服務並確保應用程式編譯。
您可能會看到相關的錯誤沒有匯出成員’Observable
‘。您可以使用以下命令擺脫此類錯誤:
通過執行以下命令來刪除不建議使用的RxJS 6
功能:
npm install -g rxjs-tslintrxjs-5-to-6-migrate -p src/tsconfig.app.json
通過執行以下命令刪除rxjs-compat
:
npm uninstall rxjs-compat
您仍然可能會看到錯誤,例如在一個或多個軟體包中沒有匯出成員’Observable
‘。您需要使用Angular 6.0.0
將這些軟體包升級到更高版本。因此,我建議您在升級前仍然等待一段時間。
相關文章
- Angular 從入坑到挖坑 - Angular 使用入門Angular
- 使用Angular cli升級AngularJS專案——(一)引導Angular混合應用AngularJS
- 如何將Angular單專案升級為多專案Angular
- 初探Angular6.x---主從元件Angular元件
- 使用Angular CLI生成 Angular 5專案Angular
- Angular 6 來了Angular
- Angular 從入坑到挖坑 - 元件食用指南Angular元件
- Angular CLI 升級 6.0 之後遇到的問題Angular
- Angular6入門Angular
- Angular 從入坑到挖坑 - HTTP 請求概覽AngularHTTP
- Angular 6 開發踩坑Angular
- 如何建立 Angular 庫並在 Angular 應用裡呼叫Angular
- 使用angular5+ionic3+sqlite建立離線app應用AngularSQLiteAPP
- Angular6 引用Layer外掛Angular
- 在angular 6中使用 lessAngular
- Angular6 服務端渲染Angular服務端
- angular 版 IM 聊天室|仿微信 App 介面|angular 實戰開發AngularAPP
- mongodb單機從3.2升級到4.0.4升級MongoDB
- Angular入門到精通系列教程(14)- Angular 編譯打包 & Docker釋出Angular編譯Docker
- 《Angular2 從開發到部署系列》之「環境搭建」Angular
- Angular 從入坑到挖坑 - 表單控制元件概覽Angular控制元件
- Angular6專案執行到95%emitting LicenseWebpackPlugin不動卡住AngularMITWebPlugin
- laravel5,5升級到6後,資源路由如何指定 id 為引數Laravel路由
- [轉]Angular 4|5 Material Dialog with ExampleAngular
- Angular 6釋出,新功能詳解Angular
- angular6自定義服務serviceAngular
- MongoDB升級--從3.4到3.6MongoDB
- 升級 ubuntu,從 18.04 到 22.04Ubuntu
- kali 升級msf到msf6
- Angular+ionic+cordova實現天氣AppAngularAPP
- Angular-多級配置搞事情啦Angular
- .NET Core +Angular 專案 部署到CentOSAngularCentOS
- ABP Framework 手動升級指南:從6.0.1升級到7.0.0Framework
- Angular表格元件 GridManager-Angular-1.xAngular元件
- angular日曆外掛---- angular-daterangepickerAngular
- AngularJS、 Angular 2、Angular 4 的區別AngularJS
- 帶你瞭解 Angular 與 Angular JSAngularJS
- angular6的響應式表單Angular