Showing posts with label node.js. Show all posts
Showing posts with label node.js. Show all posts

Thursday, November 26, 2015

Managing node.js with nvm

Managing node.js with nvm

Run below command to install nvm
curl https://raw.githubusercontent.com/creationix/nvm/v0.11.1/install.sh | bash
You'll see some output fly by, and then nvm will be installed. You will see a line that says:
=> Close and reopen your terminal to start using NVM
It's not actually necessary to log out, we just need to make sure that the changes nvm made to your path are actually reflected, so just do:
source ~/.profile
Alternatively, run the command suggested in the output of the script. Now type:
nvm ls-remote
Should you see the error, -bash: nvm: command not found it may be because git is not installed.
Go ahead and install git and rerun the script:
apt-get install git
And you will be shown a list of all the available versions of node.js. You can always find out the latest stable release by heading to the node.js website, where it's printed in the center of the page.
To install version 0.10.13 (the latest as of this writing) type:
nvm install 0.10.13
If you type:
node --version
You will now see that node v0.10.13 is installed and active. If you had an older node app that only works with node v0.8.16, and wanted to downgrade, then you would input:
nvm install v0.8.16
to install and switch to v0.8.16.
When you're done and want to switch back to v0.10.13, you can do so with nvm's use command:
nvm use v0.10.13
Nvm is great and makes switching between node versions easy and convenient. However, there's one caveat. If you type:
which node
you will see something interesting. Nvm installs node.js inside your user's home directory. This is fine for development, but if you want to actually host node applications, you don't want to install the latest new version of node via nvm and discover that you've inadvertently caused your production node app (which can be incompatible with the latest node.js) to stop working. It's best to install one copy of node globally so that other users can access it, and use nvm to switch between your development versions.
To do this, run the following command (entering your user's password at the prompt):
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
The above command is a bit complicated, but all it's doing is copying whatever version of node you have active via nvm into the /usr/local/ directory (where user installed global files should live on a linux VPS) and setting the permissions so that all users can access them.
If you ever want to change the version of node that's installed system wide, just do another nvm use vXX.XX.XX to switch your user's node to the version you want, and then re-run the above command to copy it to the system directory. 
To check that it works, become the root user and do another which command to make sure that node is now installed to /usr/local/bin:
sudo -s
which node
You should see:
/usr/local/bin/node
Congrats! Node.js is now installed and ready for use. Enjoy!
UPDATE:
Use below to change the default version for a shell.
nvm alias default 0.12.7

Wednesday, March 18, 2015

Upgrade node.js via npm

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

This will install the latest stable version.

If you want to install a specific version.
sudo npm n 0.10.34

This will install 0.10.34 version.

Just to cross check, use below command. This will print the installed version.
node -v

Tuesday, March 17, 2015

Thursday, March 12, 2015

Removing node.js and npm from mac os x

  1. Go to /usr/local/lib and delete any node and node_modules
  2. Go to /usr/local/include and delete any node and node_modules directory
  3. check your Home directory for any local or lib or include folders, and delete any node or node_modules from there
  4. Go to /usr/local/bin and delete any node and npm executable.
  5. If you have installed in any other custom directory, please remove that as well.

Use below command to remove recursively.
>sudo rm -rf node
>sudo rm -rf node_modules


rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

Wednesday, March 4, 2015

Installing npm node_modules into custom location

> npm install --prefix <custom directory path>

Example:
> npm install  --prefix C:\MyInstallations

With this, node_modules will be created in C:\MyInstallations folder.

For reference, nice content from stack overflow.

TL;DR

You can do this by using the --prefix flag and the --global* flag.
pje@friendbear:~/foo $ npm install bower -g --prefix ./vendor/node_modules
bower@0.7.0 /Users/pje/foo/vendor/node_modules/bower
*Even though this is a "global" installation, installed bins won't be accessible through the command line unless ~/foo/vendor/node_modules exists in PATH.

TL;R

Every configurable attribute of npm can be set in any of six different places. In order of priority:
  • Command-Line Flags: --prefix ./vendor/node_modules
  • Environment Variables: NPM_CONFIG_PREFIX=./vendor/node_modules
  • User Config File: $HOME/.npmrc or userconfig param
  • Global Config File: $PREFIX/etc/npmrc or userconfig param
  • Built-In Config File: path/to/npm/itself/npmrc
  • Default Config: node_modules/npmconf/config-defs.js
By default, locally-installed packages go into ./node_modules. global ones go into the prefix config variable (/usr/local by default).
You can run npm config list to see your current config and npm config edit to change it.

Resources:
http://stackoverflow.com/questions/14742553/npm-local-install-package-to-custom-location