Angular6がリリースされると、新しいコマンド ng add が追加されました。既存のcommand npm install <package>
とng add <package>
の違いを教えてください
ng add <package>
はパッケージマネージャーを使用して、依存関係をインストールします。その依存関係には、依存関係のインストール以外のジョブを実行するために使用できるインストールスクリプトを含めることができます。構成を更新したり、それに基づいて別の依存関係をダウンロードしたり、scaffoldテンプレートを作成したりできます(初期マークアップとロジック)。
サードパーティの依存関係にng add
を使用するには、そのチームはインストールスクリプトを説明するschematicsを提供する必要があります。これには、.scss
ファイルに含める.css
または.js
または関連するangular.json
ファイルを含めることができます。
提供されたリンクで、マテリアルパッケージをインストールし、コンポーネントでいくつかのコンポーネントを作成することもできます
npm install <package>
は、依存関係をインストールするだけです。
パッケージマネージャーを使用して新しい依存関係をダウンロードし、構成の変更(angular.json
ファイル内)でプロジェクトを更新できるインストールスクリプトを呼び出し、追加の依存関係(必要に応じてポリフィルなど)を追加します。コード。
たとえばコマンドng add @angular/material — Install
を実行すると、パッケージが自動的にインストールされ、angular.json
ファイルでも構成されます。
npm install <package>
はパッケージをプロジェクトにインストールするだけで、使用するための構成は行いません。
例npm install jquery
コマンドを実行すると、プロジェクトにjQueryがインストールされますが、.angular-cli.json
ファイルで手動で設定する必要があります( v5のように)
詳細については、こちらをご覧ください-
Angular 7の場合、@ngrx/store
パッケージを例に取ります。
パッケージをインストールしてpackage-lock.json
およびpackage.json
に追加する以外に、ng add
がこれらを行います。
1. reducers
folerの下にファイルindex.ts
を作成し、ルートレデューサーを初期化します。
import {
ActionReducer,
ActionReducerMap,
createFeatureSelector,
createSelector,
MetaReducer
} from '@ngrx/store';
import { environment } from '../../environments/environment';
export interface State {
}
export const reducers: ActionReducerMap<State> = {
};
export const metaReducers: MetaReducer<State>[] = !environment.production ? [] : [];
2. StoreModuleをAppModuleに追加します。 (ファイルapp.module.ts内)
import { StoreModule } from '@ngrx/store';
import { reducers, metaReducers } from './reducers';
@NgModule({
imports: [
StoreModule.forRoot(reducers, { metaReducers }),
]
})