angular - क्या कोणीय 2 से कोणीय 4 में माइग्रेट करना उचित है?




migration angular4 (2)

कोणीय टीम ने घोषणा की है, चलिए कोणीय 2 या कोणीय 4 को कॉल नहीं करते हैं चलिए इसे कोणीय कहते हैं और हर 6 महीनों के लिए बड़ा अपडेट होगा। मुझे कोणीय v4.0.0 में समस्या का सामना करना पड़ा है, इसलिए वेबपैक में कॉन्फ़िगरेशन बदलें

  new webpack.ContextReplacementPlugin(
                // The (\\|\/) piece accounts for path separators in *nix and Windows
                /angular(\\|\/)core(\\|\/)@angular/,
                helpers.root('./src'), // location of your src
                {} // a map of your routes
            ),

और @ कोणीय / एनिमेशन पैकेज स्थापित करें और app.module.ts फ़ाइल में आयात करें

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

@NgModule({
    imports: [
        BrowserAnimationsModule
    ]
})

मैं कोणीय के नवीनतम संस्करण में अद्यतन करना पसंद करूंगा। कोणीय वी 4.0.0 ने पैकेज वजन कम कर दिया है और उन्होंने प्रदर्शन में वृद्धि की है।

हैलो एसओ समुदाय और कोणीय!

तो, मैं एंगुलर 2 में एक विशाल मंच विकसित कर रहा हूं। और मुझे एहसास हुआ कि कोणीय 2 के लिए कई बाहरी पुस्तकालय और निर्भरताएं नए कोणीय में स्थानांतरित हो रही हैं 4. मुझे कई त्रुटियां दे रही हैं।

मैं इन पुस्तकालयों को फोर्क कर सकता हूं और फोर्क किए गए संस्करणों का उपयोग कर सकता हूं और मुख्य पुस्तकालय विकास की सदस्यता ले सकता हूं या, मैं सिर्फ अपनी परियोजना एंगुलर 4 में अपग्रेड कर सकता हूं।

यह निर्धारित करने के लिए कि क्या मेरे लिए माइग्रेट करना उचित है, जवाब देने के लिए प्रश्न:

  • कोणीय 2.4 के साथ संगतता

मुझे विरासत के साथ संगतता सुनिश्चित करने के लिए कुछ अनुकूलन मिल गए हैं, जैसे: https://github.com/angular/angular/commit/e99d721

  • ऐप चौड़ा बदलता है

क्या मुझे अपने पूरे ऐप से गुजरना है और चीजों को ठीक करना शुरू करना है?

मेरा मतलब है, इस तरह से मुख्य कार्यशीलताएं फिर से काम कर रही हैं कि मुझे उनमें से कई की समीक्षा करनी होगी?

या, क्या कई निर्माण / मूल असंगतताएं हैं जो मुझे विकास के बजाए दिन पर कब्जा तय करने वाली संकलन त्रुटियों / चेतावनियों को रखेगी?

मैं किसी के लिए शोध करने के लिए नहीं कह रहा हूं , मैं लोगों से पूछ रहा हूं कि शायद पहले से ही इस प्रक्रिया के माध्यम से चले गए हैं या मुझे कुछ अनुभव सुझाव, स्पष्टीकरण इत्यादि देने के लिए बस दोनों संस्करणों को अच्छी तरह से जानते हैं।

फिलहाल, मैं यहां अपना शोध कर रहा हूं:

अद्यतन करें

मैं बस कोणीय 4 में स्थानांतरित हो गया । लिंक @PierreDuc ने अपने उत्तर में डाला है माइग्रेशन प्रक्रिया में एक सभ्य दिशानिर्देश रखने के लिए एक बहुत अच्छा टूल है।

मैं सलाह दूँगा:

  1. नई विशेषताएं पढ़ें और स्वयं को कोणीय 4 के साथ अपडेट करें। यह विशेष रूप से उपयोगी था: https://angularjs.blogspot.it/2017/03/angular-400-now-available.html
  2. कोणीय के दिशानिर्देश का पालन करें और अपनी परियोजना को संशोधित करें: https://angular-update-guide.firebaseapp.com/

मैं आपकी वर्तमान परियोजना को प्रतिबद्ध करने, अपने देव भंडार में एक नई शाखा बनाने और उस शाखा में प्रवासन के साथ आगे बढ़ने की भी सिफारिश करता हूं।

एक मुद्दा जो मैंने सामना किया :
Input , Output और ContentChild गलत पथ से आयात किया जाएगा।

मेरा मामला:

import { Component, OnInit, OnDestro } from '@angular/core';
import { Input, ContentChild } from "@angular/core/src/metadata/directives";

उपाय:

import { Component, OnInit, OnDestroy, Input, ContentChild } from '@angular/core';

यदि आप चेंजलॉग की जांच करते हैं तो कुछ ऐसी चीजें हैं जिन्हें आपको ध्यान में रखने की आवश्यकता है:

अद्यतन करने से पहले

  • सुनिश्चित करें कि आप OnInit का विस्तार नहीं करते हैं, या किसी भी जीवन चक्र घटना के साथ विस्तार का उपयोग करते हैं। इसके बजाय implements <lifecycle event> उपयोग करें।
  • DefaultIterableDiffer , KeyValueDiffers#factories , या IterableDiffers#factories का उपयोग करना बंद करो
  • गहरे आयात का उपयोग बंद करो, इन प्रतीकों को अब ɵ के साथ चिह्नित किया ɵ और हमारे सार्वजनिक एपीआई का हिस्सा नहीं हैं।
  • Renderer.invokeElementMethod का उपयोग करना बंद करें क्योंकि इस विधि को हटा दिया गया है। वर्तमान में एक प्रतिस्थापन नहीं है।

अद्यतन के दौरान

  • अपनी सभी निर्भरताओं को संस्करण 4 और नवीनतम टाइपस्क्रिप्ट में अपडेट करें।
  • यदि आप लिनक्स / मैक का उपयोग कर रहे हैं, तो आप इसका उपयोग कर सकते हैं: npm install @angular/{animations,common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router}@4.0.0 [email protected] --save
  • यदि आप अपने एप्लिकेशन में एनिमेशन का उपयोग करते हैं, तो आपको अपने ऐप NgModule में @angular/platform-browser/animations से BrowserAnimationsModule आयात करना चाहिए।
  • RootRenderer साथ RootRenderer RendererFactory2 बदलें।
  • Renderer को Renderer साथ बदलें।

अद्यतन के बाद

  • अपने template टैग का नाम ng-template बदलें।
  • OpaqueTokens साथ OpaqueTokens बदलें।
  • यदि आप DifferFactory.create(...) को ChangeDetectorRef तर्क को ChangeDetectorRef हैं।
  • ngOutletContext साथ ngTemplateOutletContext बदलें।
  • IterableChangeRecord साथ CollectionChangeRecord को बदलें

https://angular-update-guide.firebaseapp.com/







angular4