I'm working with Angular2 in several projects. Each of this projects uses a different version of angular-cli
, so, I need to be able to run and compile for production each separately with the correct version of angular-cli
. When I installed angular-cli
locally using save-dev
, ng commands not found so I cannot create a build distribution for the project.
So the question are, how can I have multiples angular-cli
version in the same machine, without installed globally (with -g option)?, it is possible run ng commands without installing angular-cli
globally?
If you install @angular/cli in each project locally using package. json , then you can use npx ng which will use the local version of the package. Agreed, but also be aware that the CLI can handle previous versions of Angular, so always use the latest version.
In this case, we need two different versions to run both projects correctly. We can do that using NVM. NVM permits us to do so.
Note: After angular 6 the Angular-CLI version is the same as the Angular version. Now, if you want to find which Angular-CLI version to use for which version of Angular you can find that here AngularCLI Package.
You should always be able to run local for your current directory version of ANGULAR CLI by running:
node_modules/.bin/ng <ANY NG COMMAND>
instead of just
ng <ANY NG COMMAND>
just make sure, you are running this command from the root directory where your main package.json is located (and its node_modules directory)
There is an npm
command returning node_modules/.bin
path (which may be used for shorter writing):
// does not work on Windows `npm bin`/ng <ANY NG COMMAND>
Note that back ticks are used around npm bin
and not single quote sign.
ng
command is also added to package.json
scripts
section, so it is also possible to run local copy like this:
npm run ng -- <NG_OPTIONS>
note --
flag terminator, it must be inserted before ng options.
If you want to create a new ng project using particular version but without installing @angular/cli
globally, you can use npx
command:
npx @angular/cli@7 new <APP_NAME>
here npx
will temporary install @angular/cli
with latest @7 version and run its ng
executable with passed parameters.
You even can do something completely useless (because local copy of @angular/cli
was installed with ng new
). Run ng serve
with @6 version of CLI on @7 new project:
cd <APP_NAME> npx @angular/cli@6 serve
UPDATE
Running these commands will use ng
executable located locally within node_modules/.bin/
, so you do not need to have it installed globally:
cd <APP_NAME> npx ng serve
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With