2016-12-28 45 views
51

我試圖用「NG破壞組件富」的最佳方式,它告訴我「的破壞命令不被角CLI支持」什麼是刪除組件與CLI

我們如何正確地刪除組件與Angular CLI?

回答

57

destroy或類似的東西可能會進入CLI,但目前它不是主要關注點。所以你需要手動完成。

刪除組件目錄(假設您沒有使用--flat),然後將它從聲明它的NgModule中刪除。

如果你不確定該怎麼做,我建議你有一個「乾淨」的應用程序,意味着當前沒有git變化。然後生成一個組件,看看回購中有什麼變化,這樣你就可以從那裏回溯你需要做什麼來刪除一個組件。

更新

如果你只是嘗試你想生成的東西,你可以使用--dry-run標誌不產生磁盤上的所有文件,只看到更新後的文件列表。

32
  1. 刪除包含此組件的文件夾。
  2. 在app.module.ts中刪除該組件的導入語句並從@NgModule的聲明部分中刪除其名稱
  3. 從index.ts中刪除包含此組件的導出語句的行。
+2

where is index.ts?感謝 –

+8

在最新版本的CLI中不會生成它。 –

+1

我想再多走一步......再次運行服務,不是嗎? – gsalgadotoledo

6

目前Angular CLI不支持刪除組件的選項,您需要手動完成。從app.module爲每個組件

  1. 拆下進口引用
  2. 刪除組件文件夾。
6

因爲它不是採用了棱角分明CLI

所以這裏還不支持是可能的方式,在此之前,請遵守當您使用CLI(例如:ng g c demoComponent)組件/服務會發生什麼。

  1. 它創建一個名爲demoComponentng g c demoComponent)的單獨文件夾。
  2. 它生成HTML,CSS,ts和專用於demoComponent的spec文件。
  3. 此外,它在app.module.ts文件中添加依賴項以將該組件添加到您的項目中。

所以這樣做以相反的順序

  1. app.module.ts
  2. 刪除依賴刪除該組件文件夾。
1

我不確定這是否是最好的方法,但它對我有用。

  • 首先,我刪除了組件文件夾。
  • 然後,我清除了與要刪除的組件相關的導入和聲明的app.module.ts,app.component.ts & app.component.html。
  • 同樣,我清除了main.ts.

我剛保存並刷新了應用程序,它工作。

0

從app.module.ts:用於上述特定成分

  • 擦除進口線;
  • 從@NgModule中清除它的聲明;

然後刪除您要刪除其包含的文件(.component.ts.component.html.component.css.component.spec.ts)組件的文件夾中。

完成。

-

我看到有人說關於從main.ts中刪除它。你不應該從那裏導入它,因爲它已經導入了AppModule,AppModule是導入你創建的所有組件的AppModule。

0

首先,刪除組件文件夾,您必須刪除 ,然後刪除您在「ts」文件中創建的條目。

0

如果您在CLI中查找某些命令,那麼現在是ans NO。 但是,您可以通過刪除組件文件夾和所有參考手動執行