Angular CLIでコンポーネントの名前を変更するにはどうすればよいですか?


177

フォルダー名、.css、.ts、spec.ts、app.module.tsなどのすべてのコンポーネントファイルを手動で編集する以外に、Angular CLIでコンポーネントの名前を変更するショートカットはありますか?


1
htmlタグを変更したい場合は、セレクタの名前を変更してください。クラスを変更したい場合は、手動で行う必要があります。
Alaksandarジーザスジェネ2017

彼らがng destroyあなたを追加するまで、あなたは幸運ではありません...
ウィリアム・ハンプシャー

4
このスレッドで機能を監視できます:github.com/angular/angular-cli/issues/900
Andrii Romanchak

検索と置換、いくつかのファイル/ディレクトリの名前の変更...完了
ldgorman

回答:


179

番号!

コンポーネント作成コマンドを使用して生成されたすべてのファイルの名前を変更するコマンドはありません。だから、作成されたtshtmlcss/scss.spec.ts ファイルを手動で編集/名前を変更する必要があります。

私は頻繁に使用してangular cliおり、角度コンポーネントを作成して名前を変更する必要がある場合があるので、これは便利なコマンドだと思います。このrenameコマンドは存在しないため、作成された角度コンポーネントやディレクティブなどを削除し、コンポーネントを作成するコマンドを再度実行するのは本当に面倒です。

この機能を追加するためのディスカッションリンクは次のとおりです。


6
これは、古いプロジェクトを再利用するのにも便利です。
レオ

1
new WebStorm 2018.1.2on wordは、コンポーネントの名前を変更できますが、使用されていません。いつの日か試してみる
Aniruddha Das

2
たとえばVSCodeでは、何か問題がある場合(インポートされたファイルが存在しない、コンポーネントが存在しないなど)、左側のファイルエクスプローラーペインにエラーが表示されます。したがって、私の場合、コンポーネントの名前を変更する必要があり、そのフォルダーと内部ファイルの名前を変更し、その後、すべてのエラー表示に従って、このコンポーネントの名前を適宜変更しました。この機能は最近の他のIDEにも存在すると思います...しかし、これを自動的に実行するangular-cliコマンド(「ng gc ...」のように)を用意するのは素晴らしいことですが!幸せなコーディング!:)
TheCuBeMan 2018年

1
この機能については、2016年以降、この機能に関する議論があります:github.com/angular/angular-cli/issues/900この ような機能に対するすべてのリクエストは、このスレッドにリンクされ、閉じられます。@AniruddhaDasこれを答えに追加してもらえますか?
Stefan

1
@Stefanが追加されました。大丈夫かどうかを確認し、自由に編集してください。
Aniruddha Das

48

現在、Angular CLIは、コードの名前変更またはリファクタリングの機能をサポートしていません。

一部のIDEを使用すると、このような機能を実現できます。

Intellij、Eclipse、VSCodeなどはデフォルトでリファクタリングをサポートしています。

今日、VSCodeはいくつかの上昇傾向を示しています、個人的に私はこれのファンです

VSCodeによるリファクタリング

参照の決定:-VSコードは、変数を選択してショートカットSHIFT+ を押すことにより、変数のすべての参照を見つけるのに役立ちますF12。これは、タイプスクリプトで非常にうまく機能します。

参照のすべてのインスタンスの名前を変更する:-押すことができるすべての参照を見つけた後F2、ポップアップが開き、値を変更してEnterをクリックすると、参照のすべてのインスタンスが更新されます。

ファイルとインポートの名前変更 プラグインを使用して、ファイルとそのインポート参照の名前を変更できます。詳細はこちら

ここに画像の説明を入力してください

変数とファイルの名前を変更した後の上記の手順で、角度コンポーネントの名前を変更できます。


3
参照、ファイル、インポートについて話しますが、コンポーネントの名前を変更するのはどうですか?
Ortomala Lokni

1
@OrtomalaLokni angular-cliは名前の変更をサポートしていません。名前を変更するタスクは、次の3つのステップで実行できます。
samuelj90

1

angular-renameを参照してください

インストール

npm install -g angular-rename

使用する

$ ./angular-rename OldComponentName NewComponentName

1
Githubリポジトリはもう存在しません
Emmanuel

最悪のコンポーネントevet ...適切なドキュメントなし、バグがいっぱい...いいアイデア...しかし役に立たない
DS_web_developer

1

OPはCLIコマンドを要求しますが、一部の回答はIDEに焦点を当てています。この回答では、現在のWebStorm / IntelliJでコンポーネントの名前を変更できることを確認しました。実行する必要があるのは、.tsファイル内のクラスの名前を変更することだけです。以下が表示されます:

ここに画像の説明を入力してください

名前の変更は、関連するすべての場所で実行されます。


これは、@ Aniruddha Dasによって現在のスレッドで最初に報告されました
P Marecki

0

最初の答えが示したように、現時点ではコンポーネントの名前を変更する方法はないため、回避策について話し合っています。これが私がすることです:

  1. 気に入った新しいコンポーネントを作成します。

    ng生成コンポーネントnewName

  2. Visual Studioのコードエディターまたはその他のエディターを使用して、コード/ピースを並べて移動できます。

  3. Linuxでは、grep&sed(検索と置換)を使用して、参照を検索/置換します。

    grep -ir "oldname"

    あなたのフォルダをcdする

    sed -i 's / oldName / newName / g' *


0

私は個人的にはそのためのコマンドを見つけていません。ただ、新しいコンポーネント(名前を変更名前)を作成し、前のコンポーネントの貼り付けコピーhtmlcssts。でts明らかにクラス名は置き換えられます。最も安全な方法ですが、少し時間がかかります。


0

WebStormでは、TypeScriptファイル内のコンポーネントの名前を右クリック→リファクタリング→名前の変更を行うと、どこでも名前が変更されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.