ionic4 angular7 共通コンポーネントを作成する手順

今回やりたかったことは以下のようなこと
tabsテンプレートで作成したプロジェクトでtab2とtab3で共通の<app-my-custom>というタグをを呼び出したかった

とりあえずプロジェクトを作成してコンポーネントをつくる

$ ionic start component_test tabs
$ ionic g c components/my-custom --nospec

components.module.ts をつくってコンポーネントを登録する。declationsとexportsに追加

components/components.module.ts

import { NgModule } from '@angular/core';
import { MyCustomComponent } from './my-custom/my-custom.component';

@NgModule({
  declarations: [
    MyCustomComponent
  ],
  imports: [
  ],
  entryComponents: [
  ],
  exports: [
    MyCustomComponent
  ]
})
export class ComponentsModule {}

app.module.tsにcomponents.moduleを登録する

app.module.ts

・・・
import { ComponentsModule } from './components/components.module';

@NgModule({

  ・・・

  imports: [
    BrowserModule,
    IonicModule.forRoot(),
    AppRoutingModule,
    ComponentsModule // ★追加!
  ],

  ・・・

})
export class AppModule {}

pageからコンポーネントを呼び出す

tab2/tab2.module.ts

・・・
import { ComponentsModule } from '../components/components.module';

@NgModule({
  imports: [

    ・・・

    ComponentsModule // ★追加!
  ],
  declarations: [Tab2Page]
})
export class Tab2PageModule {}

tab3もおなじ

おまけ
コンポーネントから別のコンポーネントを呼び出してみる

$ ionic g c components/your-custom --nospec

作成したコンポーネントをmy-customのときと同様にcomponents.module.tsに登録

components/components.module.ts

import { NgModule } from '@angular/core';
import { MyCustomComponent } from './my-custom/my-custom.component';
import { YourCustomComponent } from './your-custom/your-custom.component';

@NgModule({
  declarations: [
    MyCustomComponent,
    YourCustomComponent
  ],
  imports: [
  ],
  entryComponents: [
  ],
  exports: [
    MyCustomComponent,
    YourCustomComponent
  ]
})
export class ComponentsModule {}

components/my-custom/my-custom.component.html

<p>
  my-custom works!
  <app-your-custom></app-your-custom>
</p>

あとは呼び出すだけでOK。以上です