Installing Yeoman - "Yo command not found" - node.js

I have installed node.js and set up npm on my Yosemite install using the npm-g_nosudo script. When I then run npm install -g yo I see a bunch of content scroll through my terminal window, with no errors, and it completes. I then type yo and OS X tells me that it can't find the command.
Sullys-MacBook-Pro:~ Sully$ npm install -g yo
/Users/Sully/npm/bin/yo -> /Users/Sully/npm/lib/node_modules/yo/lib/cli.js
> yo#1.4.6 postinstall /Users/Sully/npm/lib/node_modules/yo
> yodoctor
Yeoman Doctor
Running sanity checks on your system
✔ Global configuration file is valid
✔ NODE_PATH matches the npm root
✔ No .bowerrc file in home directory
✔ No .yo-rc.json file in home directory
Everything looks all right!
yo#1.4.6 /Users/Sully/npm/lib/node_modules/yo
├── titleize#1.0.0
├── array-uniq#1.0.2
├── figures#1.3.5
├── user-home#1.1.1
├── opn#1.0.2
├── humanize-string#1.0.1 (decamelize#1.0.0)
├── sort-on#1.2.0 (dot-prop#2.0.0)
├── async#0.9.0
├── yeoman-character#1.0.1 (supports-color#1.3.1)
├── string-length#1.0.0 (strip-ansi#2.0.1)
├── cross-spawn#0.2.9 (lru-cache#2.6.2)
├── findup#0.1.5 (commander#2.1.0, colors#0.6.2)
├── chalk#1.0.0 (escape-string-regexp#1.0.3, ansi-styles#2.0.1, supports-color#1.3.1, strip-ansi#2.0.1, has-ansi#1.0.3)
├── yosay#1.0.3 (ansi-regex#1.1.1, ansi-styles#2.0.1, strip-ansi#2.0.1, word-wrap#1.0.3, pad-component#0.0.1, taketalk#1.0.0, minimist#1.1.1)
├── root-check#1.0.0 (downgrade-root#1.1.0, sudo-block#1.2.0)
├── meow#3.1.0 (object-assign#2.0.0, camelcase-keys#1.0.0, minimist#1.1.1, indent-string#1.2.1)
├── package-json#1.1.0 (registry-url#3.0.3)
├── npm-keyword#1.1.1 (registry-url#3.0.3)
├── update-notifier#0.3.2 (is-npm#1.0.0, latest-version#1.0.0, semver-diff#2.0.0)
├── got#2.9.2 (lowercase-keys#1.0.0, timed-out#2.0.0, object-assign#2.0.0, is-stream#1.0.1, prepend-http#1.0.1, nested-error-stacks#1.0.0, statuses#1.2.1, infinity-agent#2.0.3, duplexify#3.3.0, read-all-stream#2.1.2)
├── fullname#1.1.0 (npmconf#2.1.1)
├── yeoman-environment#1.2.5 (log-symbols#1.0.2, escape-string-regexp#1.0.3, untildify#2.0.0, diff#1.4.0, text-table#0.2.0, debug#2.1.3, mem-fs#1.1.0, globby#1.2.0, grouped-queue#0.3.0)
├── configstore#0.3.2 (object-assign#2.0.0, xdg-basedir#1.0.1, osenv#0.1.0, graceful-fs#3.0.6, uuid#2.0.1, mkdirp#0.5.0, js-yaml#3.3.0)
├── insight#0.5.3 (object-assign#2.0.0, lodash.debounce#3.0.3, os-name#1.0.3, tough-cookie#0.12.1, request#2.55.0)
├── lodash#3.8.0
├── yeoman-doctor#1.3.2 (object-values#1.0.0, log-symbols#1.0.2, each-async#1.1.1, twig#0.7.2)
└── inquirer#0.8.3 (ansi-regex#1.1.1, cli-width#1.0.1, through#2.3.7, readline2#0.1.1, rx#2.5.2)
Sullys-MacBook-Pro:~ Sully$ yo
-bash: yo: command not found
I also tried using source .bash_profile and rebooting. The command is still not found. Am I doing something wrong?
This is my .bash_profile
# Add environment variable COCOS_CONSOLE_ROOT for cocos2d-x
export COCOS_CONSOLE_ROOT=/Users/Sully/Development/Libraries/cocos2d-x-3.5/tools/cocos2d-console/bin
export PATH=$COCOS_CONSOLE_ROOT:$PATH
# Add environment variable COCOS_TEMPLATES_ROOT for cocos2d-x
export COCOS_TEMPLATES_ROOT=/Users/Sully/Development/Libraries/cocos2d-x-3.5/templates
export PATH=$COCOS_TEMPLATES_ROOT:$PATH
# NPM
export BIN_ROOT=/usr/local/bin
export PATH=$BIN_ROOT:$PATH
This is my full $PATH
Sullys-MacBook-Pro:~ Sully$ echo $PATH
/usr/local/share/npm/bin:/usr/local/bin:/Users/Sully/Development/Libraries/cocos2d-x-3.5/templates:/Users/Sully/Development/Libraries/cocos2d-x-3.5/tools/cocos2d-console/bin:/Users/Sully/.dnx/runtimes/dnx-mono.1.0.0-beta4/bin:/usr/local/bin:/Users/Sully/Development/Libraries/cocos2d-x-3.5/templates:/Users/Sully/Development/Libraries/cocos2d-x-3.5/tools/cocos2d-console/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

This was resolved by adding export PATH=/Users/UserAccountName/npm/bin:$PATH to my ~/.bash_profile and restarting Terminal.app.

I have faced the same problem after installing everything succesfully, I resolved it using the following method creating symbolic links to yo, grunt, bower like the following :
For Yo
praveen#praveen-lenovo:~$ sudo ln -s /home/praveen/.npm-global/bin/yo /usr/bin/yo
For Grunt
praveen#praveen-lenovo:~$ sudo ln -s /home/praveen/.npm-global/bin/grunt /usr/bin/grunt
For Bower
praveen#praveen-lenovo:~$ sudo ln -s /home/praveen/.npm-global/bin/bower /usr/bin/bower
Here in the above commands the common path /home/praveen/.npm-global/bin/ may change according to your system folder structure.

Related

yoeman/ubuntu: not recognized yo command

I am trying to install yoeman in ubuntu (via terminal) and I can't execute the command yo because it is not found. These are the steps I am using:
dmr#xxxxxxxxxxx:/home$ sudo npm install yo -g
npm WARN deprecated npmconf#2.1.2: this package has been reintegrated into npm and is now out of date with respect to npm
-
> spawn-sync#1.0.15 postinstall /home/xxxxxxxxxxx/.npm/lib/node_modules/yo/node_modules/yeoman-environment/node_modules/inquirer/node_modules/external-editor/node_modules/spawn-sync
> node postinstall
> spawn-sync#1.0.15 postinstall /home/xxxxxxxxxxx/.npm/lib/node_modules/yo/node_modules/tabtab/node_modules/inquirer/node_modules/external-editor/node_modules/spawn-sync
> node postinstall
/home/xxxxxxxxxxx/.npm/bin/yo -> /home/xxxxxxxxxxx/.npm/lib/node_modules/yo/lib/cli.js
/home/xxxxxxxxxxx/.npm/bin/yo-complete -> /home/xxxxxxxxxxx/.npm/lib/node_modules/yo/lib/completion/index.js
> yo#1.8.4 postinstall /home/xxxxxxxxxxx/.npm/lib/node_modules/yo
> yodoctor
Yeoman Doctor
Running sanity checks on your system
✔ Global configuration file is valid
✔ NODE_PATH matches the npm root
✔ Node.js version
✔ No .bowerrc file in home directory
✔ No .yo-rc.json file in home directory
✖ npm version
Your npm version is outdated.
Upgrade to the latest version by running:
npm install -g npm
Found potential issues on your machine :(
yo#1.8.4 /home/xxxxxxxxxxx/.npm/lib/node_modules/yo
├── cli-list#0.1.8
├── titleize#1.0.0
├── async#1.5.2
├── humanize-string#1.0.1 (decamelize#1.2.0)
├── opn#3.0.3 (object-assign#4.1.0)
├── user-home#2.0.0 (os-homedir#1.0.1)
├── figures#1.7.0 (escape-string-regexp#1.0.5, object-assign#4.1.0)
├── string-length#1.0.1 (strip-ansi#3.0.1)
├── chalk#1.1.3 (escape-string-regexp#1.0.5, ansi-styles#2.2.1, supports-color#2.0.0, has-ansi#2.0.0, strip-ansi#3.0.1)
├── repeating#2.0.1 (is-finite#1.0.1)
├── sort-on#1.3.0 (arrify#1.0.1, dot-prop#2.4.0)
├── root-check#1.0.0 (sudo-block#1.2.0, downgrade-root#1.2.2)
├── yeoman-character#1.1.0 (supports-color#3.1.2)
├── parse-help#0.1.1 (execall#1.0.0)
├── cross-spawn#3.0.1 (lru-cache#4.0.1, which#1.2.10)
├── yosay#1.2.0 (ansi-regex#2.0.0, strip-ansi#3.0.1, ansi-styles#2.2.1, wrap-ansi#2.0.0, cli-boxes#1.0.0, pad-component#0.0.1, string-width#1.0.2, taketalk#1.0.0)
├── package-json#2.3.3 (registry-url#3.1.0, semver#5.3.0, rc#1.1.6)
├── got#5.6.0 (lowercase-keys#1.0.0, timed-out#2.0.0, is-redirect#1.0.0, is-plain-obj#1.1.0, is-stream#1.1.0, node-status-codes#1.0.0, duplexer2#0.1.4, is-retry-allowed#1.1.0, read-all-stream#3.1.0, unzip-response#1.0.0, object-assign#4.1.0, pinkie-promise#2.0.1, url-parse-lax#1.0.0, create-error-class#3.0.2, readable-stream#2.1.5, parse-json#2.2.0)
├── configstore#1.4.0 (object-assign#4.1.0, os-tmpdir#1.0.1, graceful-fs#4.1.6, xdg-basedir#2.0.0, uuid#2.0.2, osenv#0.1.3, write-file-atomic#1.2.0, mkdirp#0.5.1)
├── inquirer#0.11.4 (strip-ansi#3.0.1, ansi-regex#2.0.0, ansi-escapes#1.4.0, rx-lite#3.1.2, through#2.3.8, cli-width#1.1.1, string-width#1.0.2, readline2#1.0.1, cli-cursor#1.0.2, run-async#0.1.0)
├── npm-keyword#4.2.0 (object-assign#4.1.0, pinkie-promise#2.0.1, registry-url#3.1.0)
├── update-notifier#0.6.3 (is-npm#1.0.0, latest-version#2.0.0, semver-diff#2.1.0, boxen#0.3.1, configstore#2.0.0)
├── meow#3.7.0 (map-obj#1.0.1, trim-newlines#1.0.0, decamelize#1.2.0, object-assign#4.1.0, camelcase-keys#2.1.0, minimist#1.2.0, redent#1.0.0, loud-rejection#1.6.0, normalize-package-data#2.3.5)
├── fullname#2.1.0 (pify#2.3.0, pinkie-promise#2.0.1, npmconf#2.1.2)
├── read-pkg-up#1.0.1 (find-up#1.1.2, read-pkg#1.1.0)
├── yeoman-doctor#2.1.0 (object-values#1.0.0, log-symbols#1.0.2, semver#5.3.0, each-async#1.1.1, bin-version-check#2.1.0, twig#0.8.9)
├── insight#0.7.0 (object-assign#4.1.0, tough-cookie#2.3.1, lodash.debounce#3.1.1, os-name#1.0.3, inquirer#0.10.1, request#2.74.0)
├── lodash#3.10.1
├── yeoman-environment#1.6.3 (log-symbols#1.0.2, escape-string-regexp#1.0.5, text-table#0.2.0, untildify#2.1.0, debug#2.2.0, diff#2.2.3, globby#4.1.0, mem-fs#1.1.3, grouped-queue#0.3.2, inquirer#1.1.2, lodash#4.15.0)
└── tabtab#1.3.2 (object-assign#4.1.0, minimist#1.2.0, debug#2.2.0, mkdirp#0.5.1, npmlog#2.0.4, inquirer#1.1.2)
I execute yo and command is not recognized.
Reading the result I see npm version is not installed to the latest version. I execute then:
sudo npm install -g npm
xxxxxx#xxxxxxxxxx:/home$ sudo npm install -g npm
/home/xxxxxx/npm/bin/npm -> /home/xxxxx/.npm/lib/node_modules/npm/bin/npm-cli.js
npm#3.10.6 /home/xxxxxx/.npm/lib/node_modules/npm
and get current version is:
xxxxxxxx:/home$ npm -v
2.15.9
I dont know if it really is the latest version of npm.
What is happening? What is wrong in the commands of linux?
I found the solution...
I am new in ubuntu and today when I turn on the ubuntu had packages corrupted... specially start stoped in npm package.
I reinstalled ubuntu and now I could install last version of npm 3.10.6 and after it yo (yeoman for angular)
I dont know if after this situation I can repare packages bad installed

Can't install Meteor Up / (mup)

After installing npm I typed:
npm install -g mup
It returned:
/Users/RyanCassutt/.node/bin/mup -> /Users/RyanCassutt/.node/lib/node_modules/mup/bin/mup
mup#0.11.1 /Users/RyanCassutt/.node/lib/node_modules/mup
├── colors#0.6.2
├── underscore#1.7.0
├── uuid#1.4.2
├── async#0.9.2
├── rimraf#2.4.2 (glob#5.0.14)
├── archiver#0.14.4 (buffer-crc32#0.2.5, lazystream#0.1.0, readable-stream#1.0.33, tar-stream#1.1.5, glob#4.3.5, zip-stream#0.5.2, lodash#3.2.0)
├── nodemiral#1.1.0 (debug#0.7.4, progress#1.1.5, async#0.9.0, underscore#1.8.3, ejs#0.8.8, ssh2#0.4.6)
└── cjson#0.3.1 (jsonlint#1.6.0)
I then try to create a new project:
mup init
But it returns:
-bash: mup: command not found
Is mup not installing correctly or is there some type of error? Thank you.

NPM Installs Not Working as Intended

Sometimes then I run npm commands in the ubuntu console, e.g.
npm install forever -g
I get such feedback from the console and it is unclear to me is it installed? Is this a list of dependencies? Is this an issue? How should I proceed fixing this?
forever#0.14.1 /usr/local/lib/node_modules/forever
├── colors#0.6.2
├── timespan#2.3.0
├── optimist#0.6.1 (wordwrap#0.0.3, minimist#0.0.10)
├── nssocket#0.5.3 (eventemitter2#0.4.14, lazy#1.0.11)
├── cliff#0.1.10 (eyes#0.1.8, colors#1.0.3)
├── winston#0.8.3 (cycle#1.0.3, stack-trace#0.0.9, eyes#0.1.8, isstream#0.1.2, async#0.2.10, pkginfo#0.3.0)
├── nconf#0.6.9 (ini#1.3.4, async#0.2.9, optimist#0.6.0)
├── utile#0.2.1 (deep-equal#1.0.0, ncp#0.4.2, async#0.2.10, i#0.3.3, mkdirp#0.5.1, rimraf#2.4.0)
├── flatiron#0.4.3 (optimist#0.6.0, director#1.2.7, prompt#0.2.14, broadway#0.3.6)
└── forever-monitor#1.5.2 (watch#0.13.0, minimatch#1.0.0, ps-tree#0.0.3, broadway#0.3.6)
This is not an error message, everything installed just fine.
Output such as this shows you the other packages that were installed as dependencies for the package you have installed.

express is not recognized in cmd in windows 7

js on my windows 7 machine, i have executed the below commands from
C:\node> npm install -g express -generator
and also C:\node> npm install -g express -generator#4, and also the npm link express
for the above commands, i got the below messages.
express#4.10.7 C:\Users\user1\AppData\Roaming\npm\node_modules\express
├── methods#1.1.1
├── finalhandler#0.3.3
├── cookie-signature#1.0.5
├── serve-static#1.7.2
├── merge-descriptors#0.0.2
├── utils-merge#1.0.0
├── range-parser#1.0.2
├── media-typer#0.3.0
├── cookie#0.1.2
├── content-disposition#0.5.0
├── parseurl#1.3.0
├── vary#1.0.0
├── escape-html#1.0.1
├── fresh#0.2.4
├── path-to-regexp#0.1.3
├── depd#1.0.0
├── qs#2.3.3
├── on-finished#2.2.0 (ee-first#1.1.0)
├── etag#1.5.1 (crc#3.2.1)
├── debug#2.1.1 (ms#0.6.2)
├── type-is#1.5.5 (mime-types#2.0.7)
├── accepts#1.1.4 (negotiator#0.4.9, mime-types#2.0.7)
├── send#0.10.1 (destroy#1.0.3, ms#0.6.2, mime#1.2.11, on-finished#2.1.1)
└── proxy-addr#1.0.4 (forwarded#0.1.0, ipaddr.js#0.1.5)
and with npm link express:
C:\node\node_modules\express -> C:\Users\user1\AppData\Roaming\npm\node_modul
es\express
but still when i execute the express nodetest1 at C:/node> i am getting the express is not recognized error.
anyone know any pointers would be helpful.
You have a space between express and -generator above... if this was copy-pasted, maybe you missed it... it's supposed to be express-generator as a single unit.
Make certain that %USERPROFILE%\AppData\Roaming\npm both exists and is in your PATH environment variable... If it isn't there, you will have to open a new prompt after adding it. Some versions of node's installer don't always create or add it correctly.
If you are using [nvm for windows] you will need to ensure that C:\Program Files\nodejs is in your path (the installer should work correctly), you'll need to run nvm via command prompt Run as Administrator. This is because nvm uses symbolic links from the global install path to a specific version under your profile to run against.
I've been using nvm for windows for a few months now (switching from 0.10.x and 0.11.x versions) and it's been a bit easier to work with.
Make sure you are runing the command promt as System Administrator "This is very important", then do npm install -g express after that chang to the directory where you want to create your app and you are good to go. NB if you are using express 4 then install it via npm install -g express-generator#4

npm install not installing things at /usr/bin

I am trying to install SailsJS with:
$ sudo npm install -g sails
It works, install everything at /home/brunoluiz/npm/lib/node_modules/sails with the following log:
/home/brunoluiz/npm/bin/sails -> /home/brunoluiz/npm/lib/node_modules/sails/bin/sails.js
sails#0.9.16 /home/brunoluiz/npm/lib/node_modules/sails
├── connect-flash#0.1.1
├── pluralize#0.0.5
├── inflection#1.2.5
├── grunt-sails-linker#0.9.5
├── grunt-contrib-clean#0.4.1
├── node-uuid#1.4.0
├── async#0.2.9
├── grunt-contrib-concat#0.3.0
├── grunt-contrib-copy#0.4.1
├── grunt-contrib-coffee#0.7.0
├── ejs-locals#1.0.2
├── ejs#0.8.4
├── underscore.string#2.3.0
├── coffee-script#1.6.2
├── lodash#2.4.1
├── i18n#0.4.1 (debug#0.8.0, sprintf#0.1.3)
├── optimist#0.3.4 (wordwrap#0.0.2)
├── include-all#0.1.2 (underscore.string#2.3.1)
├── sails-disk#0.9.3 (waterline-criteria#0.9.7, lodash#2.3.0, fs-extra#0.8.1)
├── fs-extra#0.5.0 (jsonfile#0.0.1, ncp#0.2.7, mkdirp#0.3.5, rimraf#2.1.4)
├── connect-redis#1.4.5 (debug#0.8.0, redis#0.7.3)
├── grunt-contrib-jst#0.5.0 (lodash#1.0.1, grunt-lib-contrib#0.5.3)
├── glob#3.1.14 (inherits#1.0.0, graceful-fs#1.1.14, minimatch#0.2.14)
├── grunt-contrib-cssmin#0.6.1 (grunt-lib-contrib#0.6.1, clean-css#1.0.12)
├── grunt-cli#0.1.9 (resolve#0.3.1, nopt#1.0.10, findup-sync#0.1.3)
├── grunt-contrib-watch#0.4.4 (gaze#0.3.4, tiny-lr#0.0.4)
├── connect-mongo#0.3.2 (mongodb#1.2.14)
├── grunt-contrib-uglify#0.2.2 (grunt-lib-contrib#0.6.1, uglify-js#2.3.6)
├── waterline#0.9.16 (underscore#1.5.2, q#0.9.7, anchor#0.9.12)
├── grunt#0.4.1 (which#1.0.5, dateformat#1.0.2-1.2.3, eventemitter2#0.4.13, colors#0.6.2, hooker#0.2.3, async#0.1.22, nopt#1.0.10, minimatch#0.2.14, lodash#0.9.2, rimraf#2.0.3, coffee-script#1.3.3, underscore.string#2.2.1, iconv-lite#0.2.11, glob#3.1.21, findup-sync#0.1.3, js-yaml#2.0.5)
├── winston#0.7.1 (cycle#1.0.3, stack-trace#0.0.9, eyes#0.1.8, colors#0.6.2, pkginfo#0.3.0, request#2.16.6)
├── express#3.4.0 (methods#0.0.1, debug#0.8.0, range-parser#0.0.4, cookie-signature#1.0.1, fresh#0.2.0, buffer-crc32#0.2.1, cookie#0.1.0, mkdirp#0.3.5, commander#1.2.0, send#0.1.4, connect#2.9.0)
├── grunt-contrib-less#0.9.0 (grunt-lib-contrib#0.6.1, chalk#0.4.0, less#1.6.3)
└── socket.io#0.9.14 (base64id#0.1.0, policyfile#0.0.4, redis#0.7.3, socket.io-client#0.9.11)
The problem is when you try to use sails: you run sails new project, for example, and it doesn't find sails. Investigating a little bit, I discovered npm is not installing the modules at /usr/bin. Is there some reason for that? Some config?
The same is happening with Karma module.
I used the nodejs from ppa, created the symbolic link for node and installed npm from the official install.sh script (https://www.npmjs.org/install.sh).
It sounds like your npm installation is configured to use /home/brunoluiz/npm as prefix, meaning that it will place symlinks to the CLIs that come with globally installed packages in {prefix}/bin.
In a default installation, prefix is either /usr or /usr/local on Unix platforms (%APPDATA%/npm on Windows).
If {prefix}/bin is not in your $PATH, you won't be able to execute such CLIs just by name.
To see the current prefix value in effect, run:
npm get prefix
Your options are:
Add /home/brunoluiz/npm/bin to your $PATH
Change the value of the prefix configuration item to a folder whose bin subfolder is already in your $PATH; e.g.:
npm set prefix /usr # Ubuntu; CLI symlinks are placed in /usr/bin
npm set prefix /usr/local # OSX; CLIs symlinks are placed in /usr/local/bin
Note, however, that you'd then have to reinstall your global packages for the symlinks to be created in the new {prefix}\bin location.
In addition to mklement0's answer, the first solution (adding the npm binary directory path to the PATH variable) creates another problem when the commands are run with sudo prefix on Linux environment. To solve it, the npm binary directory path must also be added in secure_path in /etc/sudoers.tmp. Here is how:
Why can't sudo find a command after I added it to PATH?

Resources