Global Angular CLI version greater than local version
Angular CliAngular Cli Problem Overview
When running ng serve
I get this warning about my global CLI version being greater than my local version. I don't notice any issues from this warning, but I was wondering if the two versions should be in sync? Also, Is it necessary to have a local version if you have a global version?
The warning:
> Your global Angular CLI version (1.1.1) is greater than your local version (1.0.6). The local Angular CLI version is used.
Angular Cli Solutions
Solution 1 - Angular Cli
To answer one of the questions, it is necessary to have both a global and local install for the tools to work.
If you try to run ng serve
on an application without the local install of the CLI (global install only), you will get the following error.
>You have to be inside an Angular CLI project in order to use the serve command.
It will also print this message:
Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"
Run that npm
command to update the CLI locally, and avoid the warning that you are getting.
Other question: It looks like they do not have to be in sync, but it's probably best that they are in order to avoid any unusual behavior with the tool, or any inconsistencies with the code the tool generates.
Why do we need both the global install, and a local install?
The global install is needed to start a new application. The ng new <app-name>
command is run using the global installation of the CLI. In fact, if you try to run ng new
while inside the folder structure of an existing CLI application, you get this lovely error:
> You cannot use the new
command inside an Angular CLI project.
Other commands that can be run from the global install are ng help
, ng get/set
with the --global
option, ng version
, ng doc
, and ng completion
.
The local install of the CLI is used after an application has been built. This way, when new versions of the CLI are available, you can update your global install, and not affect the local install. This is good for the stability of a project. Most ng
commands only make sense with the local version, like lint
, build
and serve
, etc.
According to the CLI GitHub readme, to update the CLI you must update the global and local package. However, I have used the CLI where the global and local version vary without any trouble so far. If I ever run across an error related to having the global and local CLI versions out of sync, I will post that here.
Solution 2 - Angular Cli
This is how I solved the issue.
Copy and run these commands
ng --version
npm install --save-dev @angular/cli@latest
ng --version
Solution 3 - Angular Cli
This works for me: it will update local version to latest
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install
to verify version
ng --version
Solution 4 - Angular Cli
npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@latest
Then in your Local project package:
rm -rf node_modules dist
npm install --save-dev @angular/cli@latest
npm i
ng update @angular/cli
ng update @angular/core
npm install --save-dev @angular-devkit/build-angular
Was getting below error
Error: Unexpected end of JSON input
Unexpected end of JSON input
Above steps helped from this post https://stackoverflow.com/questions/50543318/cant-update-angular-to-version-6/50543790
Solution 5 - Angular Cli
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
Your existing configuration can be updated automatically by running the following command:
ng update @angular/cli
or:
npm install
Solution 6 - Angular Cli
Run the following Command: npm install --save-dev @angular/cli@latest
After running the above command the console might popup the below message
> The Angular CLI configuration format has been changed, and your > existing configuration can be updated automatically by running the > following command: ng update @angular/cli
Solution 7 - Angular Cli
In my case I just used this command into project:
ng update @angular/cli
Solution 8 - Angular Cli
I'm not fluent in English
but if I understand the problem, is it that locally in the project you have an older version of CLI than globally?
And would you like to use this global newer instead of the local older one?
If so, a very simple method is enough to run in the project directory npm link @angular/cli
more in the subject on the page: https://docs.npmjs.com/cli/link
Solution 9 - Angular Cli
You just need to update the AngularCli
npm install --save-dev @angular/cli@latest
Solution 10 - Angular Cli
First find out the global angular-cli version by running
ng --version
The above code will show what version is the global and local angular-cli versions.
If you want the global and local angular cli to be same you can just do
npm install --save-dev @angular/cli@1.7.4
where 1.7.4 is your global angular-cli version
Then if you run ng serve --open
your code should run.
Solution 11 - Angular Cli
Two ways to solve this global and local angular CLI version issue.
- Keep a specific angular-cli version for both environments.
- Goto latest angular-cli version for both environments.
1. Specific angular-cli version
First, find out which angular version you want to keep on the global and local environment.
ng --version
for example: here we keeping local angular CLI version 8.3.27
So, we have to change the global version also on 8.3.27. use cmd>
npm install --save-dev @angular/cli@8.3.27 -g
here, '-g' flag for a set global angular-cli version.
2. Goto latest angular version for both CLI environment.
npm install --save-dev @angular/cli@latest -g
npm install --save-dev @angular/cli@latest
Solution 12 - Angular Cli
This is how I fixed it. in Visual Studio Code
's terminal, First cache clean
npm cache clean --force
Then updated cli
ng update @angular/cli
If any module missing after this, use below command
npm install
Solution 13 - Angular Cli
Update Angular CLI for a workspace (Local)
npm install --save -dev @angular/cli@latest
Note: Make sure to install the global version using the command with ‘-g’ is if it installed properly.
npm install -g @angular/cli@latest
Run Update command to get a list of all dependencies required to be upgraded
ng update
Next Run update command as below for each individual Angular core package
ng update @angular/cli @angular/core
However, I had to add ‘–force’ and ‘–allow-dirty’ flags command additionally to fix all other pending issues.
ng update @angular/cli @angular/core --allow-dirty --force
Solution 14 - Angular Cli
There is another way to avoid the global installation to create a new application. In my case I'm using Angular 9 but the customer requires Angular 8.
# create an empty directories
mkdir angular-8-cli
mkdir my-angular-8-project
# init empty npm project
cd angular-8-cli
npm init -y
# install local angular 8 cli
npm i @angular/cli@8
# go to your angular 8 project
cd ../my-angular-8-project
# use previously installed angular 8 cli to create a new angular 8 project
../angular-8-cli/node_modules/.bin/ng new my-angular-8-project --directory=.
Solution 15 - Angular Cli
if you upgraded your Angular Version, you need to change the version of
@angular-devkit/build-angular
inside your
package.json
from your old version to the new angular build version upgraded.
I had upgraded to Angular 10, so i needed to go to https://www.npmjs.com/package/@angular-devkit/build-angular and check which is my version according to Angular 10.
In my case, i founded that the version needs to be 0.1001.7
, so i changed my old version to this version in my package.json and run
npm --save install
That was enough.
Solution 16 - Angular Cli
If you just wish to turn off this warning, run the command
ng config -g cli.warnings.versionMismatch false
This is useful because some times you want to have different local & global versions. For example, you might have the latest Angular for your global version as you'll use it on new projects, but will have to run an old project in older Angular version.
Solution 17 - Angular Cli
It is caused because global and local angular versions are different. To update global angular version, first you need to run the following command in command prompt or vs code terminal
npm install --save-dev @angular/cli@latest
After that if there are any vulnerability found then run the following command to fix them
npm audit fix
Solution 18 - Angular Cli
// install npm check updates
npm i -g npm -check-updates
// Run npm-check-updates
npm -u
// you should then get a list of all your packages to be updated to the newest version
// Install the updated packages as prompted
npm install
Solution 19 - Angular Cli
npm install --save-dev @angular-devkit/build-angular - did helped ng update @angular/cli -> did create angular.json and other updates.
Collecting installed dependencies... Found 58 dependencies.
** Executing migrations for package '@angular/cli' **
Updating karma configuration
Updating configuration
Removing old config file (.angular-cli.json)
Writing config file (angular.json)
Some configuration options have been changed, please make sure to update any npm scripts which you may have modified. DELETE .angular-cli.json CREATE angular.json (4394 bytes) CREATE browserslist (429 bytes) UPDATE karma.conf.js (993 bytes) UPDATE public/tsconfig.spec.json (295 bytes) UPDATE package.json (2618 bytes) UPDATE tsconfig.json (437 bytes) UPDATE tslint.json (3135 bytes) UPDATE public/polyfills.ts (587 bytes) UPDATE public/tsconfig.app.json (199 bytes) npm WARN @angular/core@5.2.9 requires a peer of zone.js@^0.8.4 but none is installed. You must install peer dependencies yourself.
Solution 20 - Angular Cli
Just do these things
npm install --save-dev @angular/cli@latest
npm audit fix
npm audit fix --force
Solution 21 - Angular Cli
Specify the module using the --module parameter. For example, if the main module is app.module.ts, run this:
ng g c new-component --module app
Or if you are in an other directory then
ng g c component-name --module ../
Solution 22 - Angular Cli
this should solve the issue:
ng update @angular/cli @angular/core