「ng destroy component foo」を使用してみたところ、「destroyコマンドはAngular-CLIではサポートされていません」というメッセージが表示されます。
Angular CLIを使用してコンポーネントを正しく削除する方法
destroy
または同様のものがCLIに来るかもしれませんが、現時点ではそれは主な焦点ではありません。したがって、これを手動で実行する必要があります。
コンポーネントディレクトリを削除し(--flat
を使用しなかったと仮定して)、それが宣言されているNgModule
から削除します。
あなたが何をすべきかわからない場合は、私はあなたが現在のgit
の変更がないことを意味する "クリーン"なアプリを持っていることをお勧めします。それからコンポーネントを生成し、リポジトリ内で何が変更されたのかを確認します。そうすれば、そこからコンポーネントを削除するために必要なことをバックトラックすることができます。
何を生成したいのかを試しているだけの場合は、--dry-run
フラグを使用してディスク上にファイルを生成しないようにすることができます。更新されたファイルリストを参照してください。
角度CLIを使用したサポートはまだされていないので
そのため、ここで可能な方法があります。その前に、CLIを使用してコンポーネント/サービスを作成するとどうなるかを確認してください(例:ng g c demoComponent
)。
demoComponent
(ng g c demoComponent
)という名前の別のフォルダを作成します。HTML,CSS,ts
およびspec
ファイルが生成されます。逆の順序でやりなさい
app.module.ts
からDependencyを削除現在Angular CLIはコンポーネントを削除するオプションをサポートしていません、あなたはそれを手動で行う必要があります。
Visual Studioのコードを使用して、コンポーネントフォルダを削除し、プロジェクトエクスプローラ(左側)に赤で表示されているファイルを確認します。これは、ファイルが影響を受けてエラーが発生したことを意味します。各ファイルを開き、コンポーネントを使用しているコードを削除します。
以下にYakov Fainによって書かれたプロセスを自動化するはずのbashスクリプトを書きました。 ./removeComponent myComponentName これはAngular 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
それが最善の方法かどうかはわかりませんが、うまくいきました。
アプリを保存して更新したところ、うまくいきました。
Angular 2+への回答
App.modules.tsのコンポーネントfrom imports and declaration array
を削除します。
次に、その参照が他のモジュールに追加されていることを確認し、そうであればそれを削除し、
最後にappからdelete that component Manually
を入力すれば完了です。
または逆の順序でもできます。
App.module.tsから:
次に、削除するコンポーネントのフォルダとそれに含まれるファイル(.component.ts
、.component.html
、.component.css
、および.component.spec.ts
)を削除します。
完了しました。
-
私はmain.tsからそれを消去することについて言っている人々を読みました。最初はAppModuleをインポートしているので、そこからインポートすることは想定されていません。AppModuleは、作成したすべてのコンポーネントをインポートするものです。
- ルーティングモジュールからコンポーネントのパスを削除する - プロジェクト全体でコンポーネントのクラス名を検索する
まず最初に、削除しなければならないコンポーネントフォルダを削除してから、 "ts"ファイルに作成したエントリを削除します。
Specファイルに誤りがあるAngular 6ディレクティブを削除する必要がありました。問題のあるファイルを削除し、それへの参照をすべて削除してアプリを再構築した後でも、TSは依然として同じエラーを報告していました。私のために働いたのはVisual Studioを再起動することでした - これはエラーと古い不要な指令のすべての痕跡をクリアしました。
CLIでコマンドを探しているのであれば、その後は _ no _ になります。しかし、_手動でコンポーネントフォルダを削除するとすべての参照を行うことができます。