Guy Sopher
Guy Sopher

Reputation: 4462

Cannot run ionic. receives "No command 'ionic' found"

I want to start using the ionic framework, but unfortunately I'm already failing on the first step.

I am running Ubuntu 13.04 and I have node v0.10.25 installed. I've installed ionic, at described in their docs:

sudo npm install -g cordova
sudo npm install -g ionic

The installation went well, no errors or warnings, but after the installation I type

ionic

and I get the error:

No command 'ionic' found, did you mean:
 Command 'ionice' from package 'util-linux' (main)
 Command 'sonic' from package 'sonic' (universe)
ionic: command not found

I'm pretty new to ubuntu so I might have something not configured correctly, but I can't find what.

Thanks

Upvotes: 39

Views: 79213

Answers (15)

Akash Jadhav
Akash Jadhav

Reputation: 1

For MacBook M1 air follow these steps:

  1. Reinstall Ionic CLI
  2. Open Finder -> Go -> Computer -> Macintosh HD -> Users -> YourUserDirectory
  3. Press Command+Shift+'.' (dot)
  4. Open '.zshrc' file
  5. Add this line: alias ionic="/Users/akash/.npm-global/bin/ionic"

This should work!

Upvotes: 0

Fran G Aparicio
Fran G Aparicio

Reputation: 67

I reinstalled Node. A simple command: npm installation

All good! This doesn't necessarily mean reinstalling angular or ionic, I didn't need that.

After unsuccessfully trying to reinstall Angular, Ionic, several times: I decided to literally listen to the error messages when I tried specific Ionic commands:

So, as I needed the command "ionic service", and:

  • Messages trying to "serve ionic" said: Node packages may not be installed. Try installing with 'npm install'. [ng] Error: Could not find builder node package '@angular-devkit/build-angular:dev-server'.

Boredom really brought home to me: "The node packages may not be installed." So I reinstalled Node completely.

I hope that helps.

Upvotes: 0

Sabba Keynejad
Sabba Keynejad

Reputation: 8591

I solved the problem by cd to my root. Then install ionic as root admin.

$ sudo npm install -g cordova ionic

then run

$ ionic

to see if it's working.

Upvotes: 25

Guy Sopher
Guy Sopher

Reputation: 4462

Well, I found it finally.

The ionic installation was at /home/guy/npm/bin/ionic, not at /usr/bin/ionic at it should be.

Solved it with:

sudo ln -s /home/guy/npm/bin/ionic /usr/bin/ionic

Upvotes: 28

iceberg
iceberg

Reputation: 1961

For Mac users

1. install the ionic

npm i -g @ionic/cli

2. check npm path

npm root -g

3. copy full path of ionic

Ex. /usr/local/Cellar/node/15.2.1/lib/node_modules/@ionic/cli/bin

4. open this file as administrator "/etc/paths" with nano or whatever editor

Ex. sudo nano /etc/paths

5. Add ionic bin file full path to file ends. And save file.

That's it.

Upvotes: 5

arjun p
arjun p

Reputation: 27

The package name has changed from ionic to @ionic/cli! To update, run: npm uninstall -g ionic Then run: npm i -g @ionic/cli

Upvotes: 1

Niles Tanner
Niles Tanner

Reputation: 4021

First Solution

I recently ran into this issue and the only solution that worked for me was to uninstall both ionic and cordova.

npm uninstall -g cordova
npm uninstall -g ionic

Then just reinstall

npm install -g cordova
npm install -g ionic 

Second Solution

I ran into this issue again! This time check your environmental variables.

Run npm bin -g and check if the path returned is in your environmental variables. For me, it prompted that it was not found in the terminal output. I added that path to the environmental variables and restarted the terminal. From there everything started to work again. (source)

Upvotes: 10

Juan Angel
Juan Angel

Reputation: 726

Run npm root -g, copy the result path and add it to the paths file:

sudo nano /etc/paths

Restart your console and it will work.

Upvotes: 2

Mohamed sami Khiari
Mohamed sami Khiari

Reputation: 19

you can change temporary : npm config set prefix C:\Users[username]\AppData\Roaming\npm\node_modules2

  • change the Path in Environment Variables set C:\Users[username]\AppData\Roaming\npm\node_modules2

  • Run your command to install your package .

  • open file explorer copy the link C:\Users[username]\AppData\Roaming\npm\node_modules

    ok file yourpackage.CMD created another folder Created "node_modules2" in node_modules and contain your package folder.

  • copy your package file CMD to parent folder "npm"

  • copy your package folder to parent folder "node_modules"

  • now run npm config set prefix C:\Users[username]\AppData\Roaming\npm

  • change the Path in Environment Variables set C:\Users[username]\AppData\Roaming\npm

  • now package working correctly with Command line

=> this method working with me When npm block in installation Package for IONIC installation and ReactNative and another package npm.

Upvotes: 1

Arash Rabiee
Arash Rabiee

Reputation: 1099

I had the same problem with “bash: ionic: command not found”, then I added:

%USERPROFILE%\AppData\Roaming\npm

to my environment variable’s path, then I reinstalled ionic and cordova and it start working.

Upvotes: 4

Mohammad Muddasir
Mohammad Muddasir

Reputation: 975

I also faced same problem but i solved i used following commands on terminal it worked

  • sudo npm uninstall ionic

    then  i used
    

sudo npm install -g cordova ionic@latest

and it worked fine it automatically installs best stabel version of cordova and latest stable version of ionic . for me it installed ionic 3.7.0 and cordova 7.0.1

Upvotes: 1

MartianMartian
MartianMartian

Reputation: 1849

for some of you, the two answer above might not work. here's a more general solution for situation where you see "XX" command not found

first check your npm root and npm root -g the result for the npm root -g should be something like "/usr/local". if it's not, then you found your problem.

change it by:

npm config set prefix /usr/local

then npm root -g should give you something like /usr/local/lib/node_modules . Then go ahead re-install everything with -g you will be good to go!

Upvotes: 58

Oli
Oli

Reputation: 561

Someone might run into this after trying to change the global library directory of npm to a folder they have permissions to write to in order to be able to install global libs without root permissions.

In that case you might have forgotten to add the new folder to you PATH environment variable.

The whole process of fixing Permissions can be found here.

in case that source disappears here is a copy of the steps:

There are times when you do not want to change ownership of the default directory that npm uses (i.e. /usr) as this could cause some problems, for example if you are sharing the system with other users.

Instead, you can configure npm to use a different directory altogether. In our case, this will be a hidden directory in our home folder.

  1. Make a directory for global installations:

    mkdir ~/.npm-global

  2. Configure npm to use the new directory path:

    npm config set prefix '~/.npm-global'

  3. Open or create a ~/.profile file and add this line:

    export PATH=~/.npm-global/bin:$PATH

  4. Back on the command line, update your system variables:

    source ~/.profile

Test: Download a package globally without using sudo. npm install -g jshint

Instead of steps 2-4 you can also use the corresponding ENV variable (e.g. if you don't want to modify ~/.profile):

NPM_CONFIG_PREFIX=~/.npm-global npm install -g jshint

if you just follow these steps and reinstall all the Global libs there is a good chance that it will start working for you anyways...

Just remember that if you do this, you will save your global libs into the folder created in step 1 instead of the default location in /usr/local or just /usr (depending on your OS flavor i guess?)

Upvotes: 11

shumana chowdhury
shumana chowdhury

Reputation: 1872

In my case, I have just uninstalled ionic and then reinstalled it. And it is working fine now.

Upvotes: 1

skynine
skynine

Reputation: 13

this worked for me. try adding below to the ~/.bash_profile for mac OSX el capitan users:

NPM_PACKAGES="${HOME}/.npm-packages"

NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"

PATH="$NPM_PACKAGES/bin:$PATH"
# Unset manpath so we can inherit from /etc/manpath via the `manpath`
# command
unset MANPATH # delete if you already modified MANPATH elsewhere in your config
MANPATH="$NPM_PACKAGES/share/man:$(manpath)"

then run source ~/.bash_profile to reload the profile in terminal.

additional info: node v4.3.1

Upvotes: 1

Related Questions