कोणीय v5 से कोणीय v6 पर प्रोजेक्ट अपग्रेड करना चाहते हैं


114

जैसा कि कोणीय 6 यहाँ है, मैं अपने कोणीय 5 क्लाइंट एप्लिकेशन को कोणीय 6 में अपग्रेड या स्थानांतरित करना चाहता हूं, लेकिन मुझे कोई ट्यूटोरियल या ऐसा कुछ भी नहीं मिल रहा है, जो मुझे मार्गदर्शन दे सके।

मेरे अनुसार मुझे बस एक नया कोणीय सीएलआई चलाने की जरूरत है और फिर मुझे अपने पुराने स्रोत को नए प्रोजेक्ट में ले जाना होगा। मैंने पढ़ा कि कोणीय 6 एक नए रेंडर का उपयोग कर रहा है जिसे आइवी कहा जाता है। क्या मुझे आइवी के अनुसार अपना प्रोजेक्ट बदलना होगा?


जवाबों:


272

कोणीय v6 से कोणीय v7 तक अपग्रेड करें

कोणीय के संस्करण 7 को आधिकारिक कोणीय ब्लॉग लिंक जारी किया गया है । विस्तृत जानकारी के लिए आधिकारिक कोणीय अद्यतन मार्गदर्शिका https://update.angular.io पर जाएँ । ये चरण कोणीय सामग्री का उपयोग करके मूल कोणीय 6 ऐप के लिए काम करेंगे।

ng update @angular/cli 
ng update @angular/core
ng update @angular/material

कोणीय v5 से कोणीय v6 तक अपग्रेड करें

कोणीय के संस्करण 6 को आधिकारिक कोणीय ब्लॉग लिंक जारी किया गया है । मैंने नीचे सामान्य उन्नयन चरणों का उल्लेख किया है, लेकिन अपडेट से पहले और बाद में आपको अपने कोड में बदलाव करके इसे v6 में व्यावहारिक बनाने की आवश्यकता है, इसके लिए विस्तृत जानकारी के लिए आधिकारिक वेबसाइट https://update.angular.io पर जाएँ

अपग्रेड स्टेप्स (काफी हद तक एंगुलर मटेरियल का उपयोग करते हुए बेसिक एंगुलर ऐप के लिए आधिकारिक एंगुलर अपडेट गाइड से लिया गया है ):

  1. सुनिश्चित करें कि NodeJS संस्करण 8.9+ है अगर इसे अपडेट नहीं किया है।

  2. विश्व स्तर पर और स्थानीय रूप से कोणीय क्लीयर को अपडेट करें, और पुराने कॉन्फ़िगरेशन को माइग्रेट करें क्लीयर को । निम्नलिखित को चलाकर नए कोणीय.json फॉर्मेट में .ang-cli.json करें :

    npm install -g @angular/cli  
    npm install @angular/cli  
    ng update @angular/cli
    
  3. निम्नलिखित को चलाकर अपने सभी कोणीय फ्रेमवर्क पैकेजों को v6 और RxJS और टाइपस्क्रिप्ट के सही संस्करण में अपडेट करें:

    ng update @angular/core
    
  4. निम्नलिखित चलाकर नवीनतम संस्करण में कोणीय सामग्री अपडेट करें:

    ng update @angular/material
    
  5. RxJS v6 में v5 से बड़े बदलाव हैं, v6 पीछे की ओर अनुकूलता पैकेज rxjs- कॉमर्स लाता है, जो आपके अनुप्रयोगों को काम करता रहेगा, लेकिन आपको टाइपस्क्रिप्ट कोड को रिफ्लेक्टर करना चाहिए ताकि यह rxjs- कॉमर्स पर निर्भर न हो। टाइपकर्ता कोड को रिफलेक्टर करने के लिए निम्नलिखित चलाएं:

    npm install -g rxjs-tslint   
    rxjs-5-to-6-migrate -p src/tsconfig.app.json
    

    नोट: एक बार जब आपके सभी आश्रितों ने RxJS 6 को अपडेट कर दिया है, तो rxjs- कम्पूटर को हटा दें क्योंकि यह बंडल का आकार बढ़ाता है। अधिक जानकारी के लिए कृपया इस RxJS अपग्रेड गाइड को देखें ।

    npm uninstall rxjs-compat
    
  6. ng serveइसे जांचने के लिए दौड़ा ।
    यदि आपको बिल्ड रेफरेंस में त्रुटियां मिलती हैं विस्तृत जानकारी के लिए https://update.angular.io के

कोणीय v5 से कोणीय 6.0.0-rc.5 पर अपग्रेड करें

  1. अपग्रेड rxjs को 6.0.0-beta.0, कृपया इस RxJS अपग्रेड गाइड को देखें अधिक जानकारी के लिए को । RxJS v6 में परिवर्तन होता है इसलिए पहले अपने कोड को नवीनतम RxJS संस्करण के अनुकूल बनाएं।

  2. 8.9+ के लिए NodeJS संस्करण अपडेट करें (यह कोणीय cli 6 संस्करण द्वारा आवश्यक है)

  3. अद्यतन कोणीय पंजा वैश्विक पैकेज अगले संस्करण के लिए।

    npm uninstall -g @angular/cli
    npm cache verify
    

    अगर npm संस्करण <5 है तो उपयोग करें npm cache clean

    npm install -g @angular/cli@next
    
  4. कोणीय संकुल संस्करण को 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"
    }
    
  5. अगला अद्यतन अगले संस्करण के लिए कोणीय क्ली स्थानीय पैकेज को अद्यतन करें और उपर्युक्त पैकेजों को स्थापित करें।

    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 
    
  6. कोणीय सीएलआई विन्यास प्रारूप को कोणीय cli 6.0.0-rc.2 संस्करण से बदल दिया गया है, और आपके मौजूदा कॉन्फ़िगरेशन को निम्न कमांड चलाकर स्वचालित रूप से अपडेट किया जा सकता है। यह पुरानी कॉन्फिगर फाइल को हटा देगा। .ular-cli.json और नई कोणीय . json फाइल लिखेगा

    ng update @angular/cli --migrate-only --from=1.7.4

नोट: - यदि आपको निम्नलिखित त्रुटि मिलती है "कोणीय कंपाइलर को टाइपस्क्रिप्ट> = 2.7.2 और <2.8.0 की आवश्यकता है लेकिन इसके बजाय 2.8.3 पाया गया"। निम्नलिखित आदेश चलाएँ:

npm install typescript@2.7.2

update.angular.io इस समय एज में काम नहीं करता है। यह ठीक लोड करता है, लेकिन एक बार जब आप इसे उपयोग करना शुरू करते हैं तो यह किसी प्रकार की समस्या का कारण बनता है जिसके कारण पृष्ठ प्रतिक्रिया नहीं करता है और ब्राउज़र से पूछते हैं कि क्या आप पृष्ठ पुनर्प्राप्त करना चाहते हैं
डेवोन होल्कोम्बे

3
चरण 5 मैं प्राप्त कर रहा हूं bash: rxjs-5-to-6-migrate: command not found। कोई विचार?
काइल क्रिस्सकी

जब मैं ng update @angular/coreअपने ईओण प्रोजेक्ट फ़ोल्डर में दौड़ता हूं, तो मुझे त्रुटि मिलती हैInvalid range: "*"
smk

1
उपरोक्त सभी चरणों के बाद मुझे यह बेवकूफ मुद्दा मिल रहा था: "@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क्योंकि उनमें से कुछ ठीक से अपडेट नहीं किया गया था।
आर्सेन खाचरौतन

2
यदि आपको "आपका वैश्विक कोणीय सीएलआई संस्करण (6.0.8) आपके स्थानीय संस्करण (1.6.8) से अधिक है, तो स्थानीय कोणीय सीएलआई संस्करण का उपयोग किया जाता है।" उपयोग npm स्थापित @ कोणीय / पंजा @ नवीनतम
Nakres

19

कोणीय 6 को अभी जारी किया गया है।

https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4

यहाँ मेरी छोटी परियोजनाओं में से एक के लिए काम किया गया है

  1. npm स्थापित -g @ कोणीय / cli
  2. npm @ कोणीय / cli स्थापित करें
  3. एनजी अद्यतन @ कोणीय / क्ली - मिगेट-केवल --from = 1.7.0
  4. एनजी अद्यतन @ कोणीय / कोर
  5. npm rxjs -ोहिमिटर स्थापित करें
  6. एनजी सेवा

आपको अपनी रन स्क्रिप्ट को पैकेज में अपडेट करने की आवश्यकता हो सकती है। उदाहरण के लिए। यदि आप "ऐप" और "पर्यावरण" जैसे झंडे का उपयोग करते हैं, तो इन्हें क्रमशः "प्रोजेक्ट" और "कॉन्फ़िगरेशन" में अपडेट किया गया है।

अधिक विस्तृत मार्गदर्शिका के लिए https://update.angular.io/ देखें ।


चरण 2 के बाद मुझे BOM के बिना निम्न .json फ़ाइलों (tsconfig, angular-cli.json, tslint) को UTF8 में परिवर्तित करना पड़ा। मुझे उस कदम पर एक अमान्य JSON वर्ण त्रुटि मिली।
बेंजामिन

16

बस आधिकारिक अपग्रेड गाइड का उपयोग करें जो आपको बताएगा कि आपको अपनी विशेष जरूरतों के लिए क्या करना है:

कोणीय को अपग्रेड करें

https://update.angular.io/


1
यह वास्तव में स्वीकृत उत्तर होना चाहिए क्योंकि यह अन्य सभी उन्नयन सवालों के जवाब देता है
theTechRebel

8

एंगुलर 5 से एंगुलर 6 तक के स्टेप अपग्रेड डिटेल्स की जाँच करें। ये आपको अपग्रेड के दौरान आने वाली समस्याओं और उन्हें हल करने के तरीके के बारे में विवरण प्रदान करते हैं।

  • अपने नोड संस्करण को 8 या इसके बाद के संस्करण में अपडेट करें और विश्व स्तर पर npm i -g @ angular / cli @ नवीनतम द्वारा कोणीय cli नवीनतम स्थापित करें।
  • कोणीय 6। Angar.json को .anguar-cli.json के बजाय कॉन्फ़िगरेशन फ़ाइल के रूप में उपयोग करता है। साथ ही tslint को बदल दिया गया है। नवीनतम कॉन्फ़िगरेशन विवरण के लिए https://github.com/angular/angular-cli/wiki/angular-workspace की जाँच करें । आपको अपने किसी भी मौजूदा कॉन्फ़िगरेशन को नई कॉन्फ़िगरेशन फ़ाइल में ले जाना होगा।
  • ऐसा करने के लिए नवीनतम 'आपके-प्रोजेक्ट' का उपयोग करके नवीनतम cli के साथ एक और डमी प्रोजेक्ट बनाएं और उसी तरह की चूक जैसे कि उपसर्ग, शैली आदि जो आपने अपने प्रोजेक्ट के लिए पहले उपयोग की थीं। Cli https://github.com/angular/angular-cli/wiki/new के साथ नया प्रोजेक्ट बनाएं
  • उपयोग Https://update.angular.io/ का करें का करके यह जाँचने के लिए कि कोणीय → कोणीय 6. के अपने वर्तमान संस्करण से क्या बदला गया है, यह उन्हें बदलने / ठीक करने के तरीके का उपयोग प्रदान करता है।
  • उपरोक्त चरणों का पालन करें और चरण 2 में बनाई गई angular.json फ़ाइल को कॉपी / अपडेट करें। सभी निर्भरताएँ प्राप्त करने और npm अपडेट करने के लिए अपने प्रोजेक्ट में npm i करें
  • अब बड़ा हिस्सा आता है। RxJS उन्नयन और विरोधों का समाधान। आरएक्सजेएस ने इस रिलीज के साथ ऑपरेटरों और ऑब्जर्वेबल रचनाकारों के आयात को मानकीकृत किया है। Npm i -g rxjs-tslint करें और tslint.json में लिंट कॉन्फ़िगरेशन के नीचे जोड़ें
{
  "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 / ऑपरेटरों में चले गए

import { map, filter, reduce } from 'rxjs/operators';

अवलोकनीय निर्माण विधियों को rxjs में ले जाया जाता है

   import { Observable, Subject, of, from } from 'rxjs'; 

तुम पूरी तरह तैयार हो। 6 कोणीय में आपका स्वागत है :) कैसे अपग्रेड करने के बारे में यहां मेरे ब्लॉग पोस्ट की जांच करें


4

मुझे एनगुलर-क्ली.जसन के लिए एनगुलर अपडेट @ एनग्युलर / क्ली को फिर से चलाना था।


2

कोणीय ५ से कोणीय ६ पर अपडेट करने के लिए कृपया नीचे टिप्पणी चलाएँ

  1. एनजी अद्यतन @ कोणीय / पंजा
  2. एनजी अद्यतन @ कोणीय / कोर
  3. npm स्थापित rxjs-compat (पुराने संस्करण का समर्थन करने के लिए rxjs 5.6)
  4. npm स्थापित -g rxjs-tslint (कोड में 5 से rxjs से rxjs में बदलने के लिए)। विश्व स्तर पर स्थापित करें, तभी काम करेगा।
  5. rxjs-5-to-6-migrate -p src / tsconfig.app.json (इंस्टॉल करने के बाद हमें इसे अपने सोर्स कोड में बदलकर rxjs6 फॉर्मेट में करना होगा)
  6. npm rxjs-compat की स्थापना रद्द करें (इसे अंत में निकालें)

2

पूरा गाइड

----------------- कोणीय-क्ली के साथ --------------------------

1. विश्व स्तर पर और स्थानीय स्तर पर सीएलआई अपडेट करें

  1. एनपीएम का उपयोग करना (सुनिश्चित करें कि आपके पास नोड संस्करण 8+ है)

    npm uninstall -g @angular/cli npm cache clean npm install -g @angular/cli@latest npm i @angular/cli --save

  2. यार्न का उपयोग करना

    yarn remove @angular/cli yarn global add @angular/cli yarn add @angular/cli

2. निर्भरता निर्भर करता है

ng update @angular/cli
ng update @angular/core
ng update @angular/material
ng update rxjs

कोणीय 6 अब टाइपस्क्रिप्ट 2.7 और आरएक्सजेएस 6 पर निर्भर करता है

आम तौर पर इसका मतलब यह होगा कि आपको हर जगह अपने कोड को अपडेट करना होगा 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-कंप्रेशर्स को हटा दें

npm uninstall rxjs-compat

// or using Yarn

yarn remove rxjs-compat

इस लिंक का संदर्भ लें https://alligator.io/angular/angular-6/


------------------- कोणीय-क्ले के बिना -------------------------

इसलिए आपको अपनी package.jsonफाइल को मैनुअली अपडेट करना होगा ।

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-to-6-migrate कमांड चलाने की कोशिश कर रहा हूं । कोई विचार?
काइल क्रिजेस्की

1
@WilliamHampshire ने npm install -g rxjs-tslint चलाए
जो

हाँ नहीं पता कि क्या वह अपने @Joe
केली Krzeski

शायद आपके पास नवीनतम tslint नहीं है?
जो

1
क्या आप जानते हैं कि कोणीय क्ली का उपयोग किए बिना ऐसा कैसे करें? अपनी परियोजना में मैं सब कुछ मैन्युअल रूप से करता हूं
डैनियल

1

जैसा कि विनय कुमार ने बताया कि यह वैश्विक स्थापित एंगुलर सीएलआई को अद्यतन नहीं करेगा। इसे विश्व स्तर पर अपडेट करने के लिए बस निम्नलिखित आदेशों का उपयोग करें:

npm uninstall -g @angular/cli
npm cache clean
npm install -g @angular/cli@latest

ध्यान दें कि यदि आप मौजूदा परियोजना को अद्यतन करना चाहते हैं, तो आपको मौजूदा परियोजना को संशोधित करना होगा, आपको पैकेज बदलना चाहिए अपने प्रोजेक्ट के अंदर ।

एंगुलर में ही कोई परिवर्तन नहीं हुआ है, लेकिन वे आरएक्सजेएस में हैं, इसलिए विरासत कोड के साथ काम करने के लिए आरएक्सजेड-कॉम्पिटिटर लाइब्रेरी का उपयोग करना न भूलें।

  npm install --save rxjs-compat  

मैंने Angular CLI http://bmnteam.com/angular-cli-installation/ की स्थापना / अद्यतन करने के बारे में एक अच्छा लेख लिखा है


0

बस निम्नलिखित कमांड चलाएँ:

ng update

नोट: यह विश्व स्तर पर अपडेट नहीं होगा।


0

यह है कि मैं इसे कैसे काम करता हूं।

मेरा पर्यावरण:

कोणीय सीएलआई ग्लोबल: 6.0.0, स्थानीय: 1.7.4, कोणीय: 5.2, टाइपस्क्रिप्ट 2.5.3

नोट: सक्षम करने के लिए ng Updateआपको पहले कोणीय सीएलआई 6.0 स्थापित करना होगा npm install -g @angular/cli or npm install @angular/cli

  1. ng update //update Angular Package core/common/complier... to 6.0.0

  2. ng update @angular/cli //change angular-cli.json to angular.json

वैकल्पिक यदि आपके पास कोणीय-सामग्री 5.4.2, एनजीएक्स-अनुवाद 9.1.1, एनजी-बूटस्ट्रैप / एनजी-बूटस्ट्रैप 1.1.1 है:

  1. ng update @angular/material //upgrade to 6.0.1

  2. 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

यदि आप अवलोकन का उपयोग करते हैं और त्रुटि प्राप्त करते हैं:

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";

कोणीय सीएलआई मुद्दा: https://github.com/angular/angular-cli/issues/10621


0

कोणीय 6 में 2/4/5 को अपग्रेड करने के लिए कुछ चरण हैं।

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

स्टोर MIGRATION
https://github.com/ngrx/platform/blob/master/MIGRATION.md#ngrxstore

RXJS MIGRATION
https://www.academind.com/learn/javascript/rxjs-6-what-changed/

उम्मीद है कि यह आपकी मदद करेगा :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.