¿Cuál es la forma sugerida de instalar brew, node.js, io.js, nvm, npm en OS X?

Estoy tratando de usar homebrew tanto como sea posible. ¿Cuál es la forma sugerida de instalar lo siguiente en OS X?

y con suerte apoya el desarrollo para:

  • iónico
  • ngCordova

  1. Utilizando homebrew install nvm :

     brew update brew install nvm source $(brew --prefix nvm)/nvm.sh 

    Agregue el último comando al .profile , .bashrc o .zshrc para no .zshrc a ejecutarlo en cada inicio de terminal. Entonces, por ejemplo, para agregarlo a la ejecución .profile :

     echo "source $(brew --prefix nvm)/nvm.sh" >> ~/.profile 

    Si tiene problemas para instalar nvm utilizando brew , puede instalarlo manualmente (consulte aquí )

  2. Usando nvm install node o iojs (puede instalar cualquier versión que desee):

     nvm install 0.10 # or nvm install iojs-1.2.0 
  3. npm se envía con el node (o iojs ), por lo que estará disponible después de instalar el node (o iojs ). Es posible que desee actualizarlo a la última versión:

     $ npm install -g npm@latest 

    UPD La versión anterior era npm update -g npm . Gracias a @Metallica por señalar la forma correcta (mira el comentario a continuación).

  4. Usando npm instala ionic :

     npm install -g ionic 
  5. ¿Qué hay de ngCordova ? Puedes instalarlo usando npm o npm . No sé qué variante es más adecuada para usted, depende del administrador de paquetes que desee usar para el lado del cliente. Así que los describiré a ambos:

    1. Usando npm : Vaya a la carpeta de su proyecto e instale ng-cordova en ella:

       npm install --save ng-cordova 
    2. Usando bower : Instale Bower:

        npm install -g bower 

      Y luego ve a la carpeta de tu proyecto e instala ngCordova en ella:

        bower install --save ngCordova 

PD

  1. Algunos comandos pueden requerir privilegio de superusuario
  2. Variante corta de npm install some_module es npm i some_module

Estoy usando n (gestión de versión de nodo)

Puedes instalarlo de dos maneras

 brew install n 

o

 npm install -gn 

Puede alternar entre diferentes versiones de nodo y yo. Aquí hay un ejemplo de mi env actual cuando llamo a n sin params:

 $ n io/3.3.1 node/0.12.7 node/4.0.0 node/5.0.0 ο node/5.10.1 

Si previamente ha instalado un nodo utilizando brew, tendrá un montón de archivos adicionales que debe limpiar antes de instalar el nodo “de la manera correcta”. Además, tuve que agregar algunas configuraciones a mi script de inicio para que las cosas funcionen sin problemas.

Escribí un guión para hacer esto fácil.

 # filename: install-nvm-npm-node # author: Lex Sheehan # purpose: To cleanly install NVM, NODE and NPM # dependencies: brew NOW=$(date +%x\ %H:%M:%S) CR=$'\n' REV=$(tput rev) OFF=$(tput sgr0) BACKUP_DIR=$HOME/backups/nvm-npm-bower-caches/$NOW MY_NAME=$(basename $0) NODE_VER_TO_INSTALL=$1 if [ "$NODE_VER_TO_INSTALL" == "" ]; then NODE_VER_TO_INSTALL=v0.12.2 fi if [ "`echo "$NODE_VER_TO_INSTALL" | cut -c1-1`" != "v" ]; then echo """$CR""Usage: $ $MY_NAME " echo "Example: $ $MY_NAME v0.12.1" echo "Example: $ $MY_NAME $CR" exit 1 fi echo """$CR""First, run: $ brew update" echo "Likely, you'll need to do what it suggests." echo "Likely, you'll need to run: $ brew update$CR" echo "To install latest node version, run the following command to get the latest version: $ nvm ls-remote" echo "... and pass the version number you want as the only param to $MY_NAME. $CR" echo "Are you ready to install the latest version of nvm and npm and node version $NODE_VER_TO_INSTALL ?$CR" echo "Press CTL+C to exit --or-- Enter to continue..." read x echo """$REV""Uninstalling nvm...$CR$OFF" # Making backups, but in all likelyhood you'll just reinstall them (and won't need these backups) if [ ! -d "$BACKUP_DIR" ]; then echo "Creating directory to store $HOME/.nvm .npm and .bower cache backups: $BACKUP_DIR" mkdir -p $BACKUP_DIR fi set -x mv $HOME/.nvm $BACKUP_DIR 2>/dev/null mv $HOME/.npm $BACKUP_DIR 2>/dev/null mv $HOME/.bower $BACKUP_DIR 2>/dev/null { set +x; } &>/dev/null echo "$REV""$CR""Uninstalling node...$CR$OFF" echo "Enter your password to remove user some node-related /usr/local directories" set -x sudo rm -rf /usr/local/lib/node_modules rm -rf /usr/local/lib/node rm -rf /usr/local/include/node rm -rf /usr/local/include/node_modules rm /usr/local/bin/npm rm /usr/local/lib/dtrace/node.d rm -rf $HOME/.node rm -rf $HOME/.node-gyp rm /opt/local/bin/node rm /opt/local/include/node rm -rf /opt/local/lib/node_modules rm -rf /usr/local/Cellar/nvm brew uninstall node 2>/dev/null { set +x; } &>/dev/null echo "$REV""$CR""Installing nvm...$CR$OFF" echo "++brew install nvm" brew install nvm echo '$(brew --prefix nvm)/nvm.sh' source $(brew --prefix nvm)/nvm.sh echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc):$CR$OFF" echo "export NVM_DIR=\"\$(brew --prefix nvm)\"; [ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"$CR" NVM_DIR="$(brew --prefix nvm)" echo """$CR""Using nvm install node...$CR" echo "++ nvm install $NODE_VER_TO_INSTALL" nvm install $NODE_VER_TO_INSTALL NODE_BINARY_PATH="`find /usr/local/Cellar/nvm -name node -type d|head -n 1`/$NODE_VER_TO_INSTALL/bin" echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc) and then restart your shell:$CR$OFF" echo "export PATH=\$PATH:$NODE_BINARY_PATH:$HOME/.node/bin" echo """$CR""Upgrading npm...$CR" echo '++ install -g npm@latest' npm install -g npm@latest { set +x; } &>/dev/null echo "$REV""$CR""Insert following line in your $HOME/.npmrc file:$OFF" echo """$CR""prefix=$HOME/.node$CR" echo "Now, all is likley well if you can run the following without errors: npm install -g grunt-cli$CR" echo "Other recommended global installs: bower, gulp, yo, node-inspector$CR" 

Escribí un breve artículo aquí que detalla por qué este es “el camino correcto”.

Si necesita instalar iojs, hágalo usando nvm de esta manera:

 nvm install iojs-v1.7.1 

Para instalar brew, simplemente vea su página de inicio .

Vea la respuesta de alexpods para el rest.

Estoy de acuerdo con noa: si necesita tener múltiples versiones de node , io.js luego brew no es la solución adecuada.

Puede ayudar a beta-test io.js support en nvm: https://github.com/creationix/nvm/pull/616

Si solo quiere io.js y no está cambiando versiones, entonces puede instalar la distribución binaria de io.js desde https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar .gz ; eso incluye npm y no necesitarás nvm si no cambias versiones.

Recuerde actualizar npm después de la instalación: sudo npm install -g npm@latest

Debe instalar node.js con nvm, porque de esa manera no tiene que proporcionar privilegios de superusuario al instalar paquetes globales (simplemente puede ejecutar “npm install -g nombredepaquete” sin anteponer a ‘sudo’).

Brew es fantástico para otras cosas, sin embargo. Tiendo a ser tendencioso con Bower cuando tengo la opción de instalar algo con Bower.

Estoy muy retrasado en esto, pero no me gustaron las otras respuestas

Instalando Homebrew

Para la elaboración de cerveza

 "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

Instalación de nodo y npm

NO DEBE usar brew para instalar node y npm .

He visto algunos lugares que sugieren que debes usar Homebrew para instalar Node (como la respuesta de alexpods y en esta publicación del blog de Team Treehouse ) pero al instalarlo de esta manera eres más propenso a tener problemas ya que npm y brew son ambos administradores de paquetes y usted debe tener un administrador de paquetes para administrar otro administrador de paquetes, esto genera problemas, como este error. npm oficial emite un error: negarse a eliminar: / usr / local / bin / npm o este no se puede desinstalar el módulo npm en OSX

Puede leer más sobre el tema en la publicación de DanHerbert Fixing npm en Mac OS X para usuarios de Homebrew , donde continúa diciendo

Además, el uso de la instalación Homebrew de npm requerirá que use sudo al instalar paquetes globales. Dado que una de las ideas principales detrás de Homebrew es que las aplicaciones se pueden instalar sin darles acceso de root, esta es una mala idea.

Para todo lo demás

Yo usaría npm; pero deberías seguir las instrucciones de instalación de cada módulo siguiendo las instrucciones en el sitio web, ya que estarán más al tanto de cualquier problema o error que tengan.

Esto es lo que hago:

 curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash cd / && . ~/.nvm/nvm.sh && nvm install 0.10.35 . ~/.nvm/nvm.sh && nvm alias default 0.10.35 

Sin Homebrew para este.

nvm pronto admitirá io.js, pero no en el momento de la publicación: https://github.com/creationix/nvm/issues/590

Luego instale todo lo demás, por proyecto, con una instalación de package.json y npm install .

Versión 2018

En la mayoría de las respuestas, la forma recomendada de instalar nvm es usar Homebrew

No hagas eso

En la página de Github para nvm está claramente llamado:

La instalación de Homebrew no es compatible. Si tiene problemas con nvm instalado en homebrew, brew uninstall it e instálelo siguiendo las instrucciones a continuación antes de resolver un problema.

Use el siguiente método en su lugar

 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash 

El script clona el repository nvm en ~ / .nvm y agrega la línea fuente a su perfil (~ / .bash_profile, ~ / .zshrc, ~ / .profile, o ~ / .bashrc).

Y luego usa nvm para instalar el nodo. Por ejemplo, para instalar la última versión de LTS, haga lo siguiente:

 nvm install v8.11.1 

Limpio y sin problemas. También marcaría esto como la versión de nodo predeterminada, así que debería estar todo listo

Para instalar con zsh y Homebrew:

 brew install nvm 

A continuación, agregue lo siguiente a ~ / .zshrc o su archivo de configuración de shell deseado:

 export NVM_DIR="$HOME/.nvm" . "/usr/local/opt/nvm/nvm.sh" 

Luego instala una versión de nodo y úsala.

 nvm install 7.10.1 nvm use 7.10.1