As Angular6 has been released,
They have added a new command ng add . Can anyone tell me what will be the difference between existing command npm install <package> and ng add <package>
- 2,561
- 6
- 27
- 42
3 Answers
ng add
ng add <package> uses your package manager and installs the dependency. That dependency can have an installation script which can be used to do more job except the dependency installation. It can update your configurations, download another dependencies based on that one or create scaffold templates (with initial markup and logic).
To use ng add for a third party dependency, that team must provide schematics which describes the installation script. This can include some .scss or .css or related .js files to be included in the angular.json file.
In your provided link, you can install material package and also create some components with components
npm install
npm install <package> just installs the dependency.
For more Version 6 of Angular Now Available.
- 66,568
- 14
- 114
- 112
ng add
Will use your package manager to download new dependencies and invoke an installation script which can update your project with configuration changes (In angular.json file as well), add additional dependencies (e.g. polyfills if needed), or scaffold package-specific initialization code.
For example you run the command ng add @angular/material — Install, it will automatically install the package and configure in angular.json file too.
npm install
Whereas npm install <package> will only install your package into your project but will not configure in order to use.
For example you run the command npm install jquery it will install jQuery in your project but you need to configure manually in .angular-cli.json file (as in v5)
For more information read out here -
- 1
- 1
- 84,110
- 37
- 165
- 215
-
So, you mean a command like, `ng add
` will configure the package in `angular-cli.json` as well. – Nimish goel May 04 '18 at 07:54 -
2@Nimishgoel yes as per doc `ng add @angular/material — Install and setup Angular Material and theming and register new starter components into ng generate` – Pardeep Jain May 04 '18 at 07:55
-
1Thank you so much for nice examples. I got the ideas about what it does actually. – Surendranath Sonawane Feb 27 '19 at 10:55
As for Angular 7, take @ngrx/store package for example.
Besides installing packages and adding them to package-lock.json and package.json, ng add will do these for you.
1.Create file index.ts under reducers foler, and initialize root reducer.
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.Add StoreModule to AppModule. (In file app.module.ts)
import { StoreModule } from '@ngrx/store';
import { reducers, metaReducers } from './reducers';
@NgModule({
imports: [
StoreModule.forRoot(reducers, { metaReducers }),
]
})
- 1,949
- 13
- 10