সি এল এলির সাথে কোনও উপাদান মোছার সেরা উপায় কী


227

আমি "এনজি ড্যামেন্ট কমেন্ট ফু" ব্যবহার করার চেষ্টা করেছি এবং এটি আমাকে বলে যে "ডেম্ট কমান্ডটি কৌণিক-সিএলআই দ্বারা সমর্থিত নয়"

আমরা কৌনিক সিএলআই সহ উপাদানগুলি কীভাবে সঠিকভাবে মুছব?


2
এটি এখনও সিএলআই সহ সমর্থিত নয়, তবে আপনি যদি নিশ্চিত হয়ে থাকেন যে উপাদান তৈরির আগে পুরানো পরিবর্তনগুলি গিট প্রতিশ্রুতিবদ্ধ, তবে আপনি কেবল নতুন ফাইলগুলি সরিয়ে ফেলতে পারবেন এবং পরিবর্তিতদের (বা কেবল git checkout src) গিট চেকআউট করতে পারেন ।
সঞ্জয় ভার্মা

এটি একটি চালাক হ্যাক। এটি নিশ্চিতরূপে কাজ করে Aআজুলার টিমকে এই সমস্যাটি শীঘ্রই বা পরে সমাধান করতে হবে। আমি মনে করি তারা বর্তমানে অন্যান্য সমস্যা নিয়ে ব্যস্ত। তবে আমি মনে করি আপাতত আমাদের সমাধান নিয়েই বেঁচে থাকতে হবে। একটি উত্তর হিসাবে এটি পোস্ট করুন। @ সঞ্জয়ভের্মা
আমান

উত্তর:


167

destroyবা অনুরূপ কিছু সি এল এল এ আসতে পারে তবে এটি বর্তমানে প্রাথমিক ফোকাস নয়। সুতরাং আপনাকে এটি ম্যানুয়ালি করতে হবে।

উপাদান ডিরেক্টরি মুছুন (ধরে নিবেন আপনি ব্যবহার করেননি --flat) এবং তারপরে NgModuleএটি ঘোষিত হয়েছে তা থেকে সরিয়ে ফেলুন ।

আপনি যদি করণীয় সম্পর্কে অনিশ্চিত হন তবে আমি প্রস্তাব দিচ্ছি যে আপনার কাছে একটি "ক্লিন" অ্যাপ্লিকেশন রয়েছে যার অর্থ বর্তমান gitপরিবর্তন নেই। তারপরে একটি উপাদান তৈরি করুন এবং দেখুন রেপোতে কী পরিবর্তন হয়েছে তা আপনি সেখান থেকে ব্যাকট্র্যাক করতে পারেন যাতে কোনও উপাদান মুছতে আপনাকে কী করতে হবে।

হালনাগাদ

আপনি কেবল যা উত্পন্ন করতে চান তা নিয়ে যদি আপনি পরীক্ষা নিরীক্ষা করেন তবে আপনি --dry-runডিস্কে কোনও ফাইল তৈরি না করতে পতাকা ব্যবহার করতে পারেন , কেবল আপডেট হওয়া ফাইল তালিকা দেখুন।


132
  1. এই উপাদানযুক্ত ফোল্ডারটি মুছুন।
  2. App.module.ts এ এই উপাদানটির জন্য আমদানি বিবৃতিটি সরিয়ে ফেলুন এবং @NgModule এর ঘোষণা বিভাগ থেকে এর নামটি সরিয়ে ফেলুন
  3. সূচিপত্রগুলি থেকে এই উপাদানটির জন্য রফতানি বিবৃতি সহ লাইনটি সরিয়ে দিন।

12
সূচকগুলি কোথায়? ধন্যবাদ
শেন জি

40
সি এল এলির সর্বশেষ সংস্করণে তারা এটিকে উত্পন্ন করে না।
ইয়াকভ ফেইন

7
আমি মনে করি আরও একটি ধাপ অনুপস্থিত ... আবার এনজি সার্ভিস চালাও, তাই না?
gsalgadotoledo


2
Angular6 মাসে, অ্যাপ্লিকেশন-routing.module.ts থেকে ইম্পোর্ট বিবৃতিটি সরানোর প্রয়োজন
Tyro

26

যেহেতু এটি এখনও কৌনিক সিএলআই ব্যবহার করে সমর্থিত নয়

সুতরাং এখানে সম্ভাব্য উপায়, এর আগে দয়া করে পর্যবেক্ষণ করুন যখন আপনি সি এল এল (উদাহরণস্বরূপ ng g c demoComponent) ব্যবহার করে কোনও উপাদান / পরিষেবা তৈরি করেন তখন কী ঘটে ।

  1. এটি demoComponent( ng g c demoComponent) নামে একটি পৃথক ফোল্ডার তৈরি করে ।
  2. এটি জেনারেট করে HTML,CSS,tsএবং একটি specফাইল ডেমো কম্পোনেন্টকে উত্সর্গীকৃত।
  3. এছাড়াও, এটি আপনার প্রকল্পে সেই উপাদানটি যুক্ত করতে app.module.ts ফাইলের মধ্যে নির্ভরতা যুক্ত করে।

বিপরীত ক্রমে এটি না

  1. থেকে নির্ভরতা সরান app.module.ts
  2. সেই উপাদান ফোল্ডারটি মুছুন।

নির্ভরতা অপসারণ করার সময় আপনাকে দুটি জিনিস করতে হবে।

  1. App.module.ts ফাইল থেকে আমদানি লাইন রেফারেন্স সরান।
  2. @NgModule ঘোষণার অ্যারে থেকে app.module.ts এর উপাদান ঘোষণাকে সরান।

11

ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করে, উপাদান ফোল্ডারটি মুছুন এবং প্রজেক্ট এক্সপ্লোরার (বাম দিকে) দেখুন যে ফাইলগুলি লাল রঙ করে যার অর্থ ফাইলগুলি প্রভাবিত হয় এবং উত্পাদিত ত্রুটিগুলি হয়। প্রতিটি ফাইল খুলুন এবং উপাদানটি ব্যবহার করে এমন কোডটি সরান।


11

বর্তমানে কৌনিক সিএলআই উপাদানটিকে সরানোর কোনও বিকল্প সমর্থন করে না, আপনাকে এটি ম্যানুয়ালি করা দরকার।

  1. অ্যাপ.মডিউল থেকে প্রতিটি উপাদানগুলির জন্য আমদানি রেফারেন্সগুলি সরান Remove
  2. উপাদান ফোল্ডার মুছুন।
  3. আপনার অ্যাপ্লিকেশন.মডিউল.এসটি ফাইলের @NgModule ঘোষণার অ্যারে থেকে উপাদান ঘোষণার অপসারণ করতে হবে

5

আমি একটি বাশ স্ক্রিপ্ট লিখেছি যা নীচে ইয়াকভ ফেইন দ্বারা লিখিত প্রক্রিয়াটি স্বয়ংক্রিয় করা উচিত। এটি ./removeComp घटक myComp घटकName এর মতো বলা যেতে পারে এটি কেবলমাত্র কৌনিক 6 এর সাথে পরীক্ষা করা হয়েছে

#!/bin/bash
if [ "$#" -ne 1 ]; then
    echo "Input a component to delete"
    exit 1
fi

# finds folder with component name and deletes
find . -type d -name $1 | xargs rm -rf

# removes lines referencing the component from app.module.ts
grep -v $1 app.module.ts > temp
mv temp app.module.ts

componentName=$1
componentName+="Component"

grep -v -i $componentName app.module.ts > temp
mv temp app.module.ts

ভবিষ্যতে কৌণিক জলবায়ু পরিবর্তিত হলে এটি পরিবর্তন করার জন্য দয়া করে আমার জন্য একটি নোট যুক্ত করুন
আইদন গ্রিমশা

3

এটি সর্বোত্তম উপায় কিনা তা আমি নিশ্চিত নই, তবে এটি আমার পক্ষে কাজ করেছিল।

  • প্রথমে আমি উপাদান ফোল্ডারটি মুছে ফেলেছি।
  • তারপরে, আমি মুছে ফেলতে চাইলে উপাদানটি সম্পর্কিত আমদানি এবং ঘোষণার অ্যাপ্লিকেশন।
  • একইভাবে, আমি মেইন.এস.টি সাফ করে দিয়েছি।

আমি কেবল অ্যাপটি সংরক্ষণ এবং রিফ্রেশ করেছি এবং এটি কার্যকর হয়েছে।


3

কৌণিক 2+ এর উত্তর

from imports and declaration arrayApp.modules.ts এর উপাদান সরান ।

দ্বিতীয় চেক করুন এটির রেফারেন্সটি অন্য মডিউলে যুক্ত করা হয়েছে, যদি হ্যাঁ তবে এটি সরান এবং

অবশেষে delete that component Manuallyঅ্যাপ থেকে এবং আপনার কাজ শেষ।

অথবা আপনি এটি বিপরীত ক্রমেও করতে পারেন।


2

App.module.ts থেকে:

  • নির্দিষ্ট উপাদানটির জন্য আমদানি লাইনটি মুছুন;
  • @NgModule থেকে এর ঘোষণাটি মুছুন;

তারপর উপাদান আপনি মুছে ফেলতে এবং তার অন্তর্ভুক্ত ফাইল করতে চান তার ফোল্ডারের মুছে ফেলে ( .component.ts, .component.html, .component.cssএবং .component.spec.ts)।

সম্পন্ন.

-

আমি লোকেদের এটি মেইন.এস.টি থেকে মুছে ফেলার কথা বলেছি read আপনি এটিকে প্রথম স্থান থেকে আমদানি করার কথা ছিল না কারণ এটি ইতিমধ্যে অ্যাপমোডুল আমদানি করে, এবং অ্যাপমোডুল হ'ল আপনি তৈরি সমস্ত উপাদান আমদানি করে।


2

আমার একটি কৌণিক 6 নির্দেশনা মুছতে হবে যার স্পেক ফাইলটি ভ্রান্ত ছিল। আপত্তিজনক ফাইলগুলি মুছে ফেলার পরেও, এর সমস্ত উল্লেখ মুছে ফেলা এবং অ্যাপটি পুনর্নির্মাণের পরেও টিএস এখনও একই ত্রুটিটি জানিয়েছিল। আমার জন্য যা কাজ করেছে তা ভিজ্যুয়াল স্টুডিও পুনরায় চালু করছিল - এটি ত্রুটি এবং পুরানো অবাঞ্ছিত নির্দেশিকার সমস্ত চিহ্ন মুছে ফেলেছে।


0

প্রথমে, উপাদান ফোল্ডারটি সরিয়ে ফেলুন, যা আপনাকে মুছে ফেলতে হবে এবং তারপরে "ts" ফাইলগুলিতে তৈরি করা এন্ট্রিগুলি সরিয়ে ফেলুন।


0

আপনি CLI মধ্যে কিছু কমান্ড খুঁজছেন, তাহলে ANS হয় কোন এখন জন্য। তবে আপনি উপাদান ফোল্ডার এবং সমস্ত উল্লেখ মুছে ফেলে ম্যানুয়ালি করতে পারেন ।


0

এটি কৌনিক সিএলআই দ্বারা সমর্থিত নয় এবং শীঘ্রই এটিকে যে কোনও সময় অন্তর্ভুক্ত করার কোনও মুড নেই।

প্রকৃত তৈরি সমস্যাটির এখানে লিঙ্কটি দেওয়া হয়েছে - https://github.com/angular/angular-cli/issues/1776

এবং কর্মকর্তাদের কাছ থেকে সমাধানের একটি স্ক্রিনশট - এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.