node mac instalar descargar windows linux node.js virtualization

windows - mac - node versions



Desarrollo de Node.js, windows o linux? (5)

Estoy interesado en el desarrollo web en la plataforma Node.js. Mi sistema operativo host es Windows 7. ¿Cuál sería la forma preferida de configurar un entorno de desarrollo? ¿Ejecutarlo directamente en el host o en una máquina virtual basada en Linux? ¿Cuáles son los pros y contras entre estos dos métodos?

Si voy con una máquina virtual, ¿puedo ejecutar el editor de texto y el navegador web en Windows (por razones de rendimiento)?


Eh por experiencia, uso Linux Estibador.

editar Usar Docker. hornee en sus dependencias, monte su proyecto en tiempo de ejecución, ancle a una versión particular del nodo LTS solamente. Tomaría una imagen de portador de 2gb sobre un proyecto que no se puede ejecutar, lo que llevaría días perdidos forzados a actualizar a nuevos paquetes. - 2018/04/10

Pero de alguien que pasó los últimos 8 años desarrollando en un entorno basado en Linux, y después de haber pasado los últimos 6 meses desarrollando software usando nodejs en un entorno Windows net dot, aquí están mis descubrimientos, impactantes o de lo contrario ...

Problemas en Windows:

  • no puede utilizar efectivamente docker La última versión del kit de herramientas de docker resuelve esto en lo que a mí respecta. ymmv.
  • la mayoría de los módulos de nodo requieren node_gyp, que en la superficie no parece problemático (ya que se supone que gyp es un compilador multiplataforma), excepto cuando se profundiza en lo que se necesita para que esto funcione en Windows: nada funcionará. . Esto apesta para mí debido a varias razones:
  • Normalmente estoy en Linux, así que nunca quiero tener que usar Visual Studio.
  • Es totalmente ridículo que la compilación de algo en Windows requiera como mínimo una instalación de 3 GB de un IDE ... no libs, sino una pieza de software GUI completamente monolítica que nunca lanzaré.
  • el equivalente de windows de debians build-essentials es en realidad una colección dispersa y poco conocida de gui solo instaladores dispersos por Internet que requieren una secuencia de instalación específica. Esto, en comparación con sudo apt-get install build-essentials consume demasiado tiempo y está plagado de errores ocultos.

  • Desarrollar en Windows le permitirá tener el mal hábito de los nombres de las rutas de casos mixtos, a menos que su equipo tenga una política estricta que se siga y aplique, esto será una pendiente resbaladiza para los problemas posteriores.

  • mientras que Windows admite más de 256 caracteres en las rutas, las herramientas importantes no funcionan. ingrese a la etapa izquierda: rimraf y robocopy ... ugh.

  • el terminal de Windows apesta ... también lo hace el shell predeterminado: cmd.exe ... Powershell es demasiado detallado en su sintaxis y no es mi gusto ... Instalar Cmder alivia esto de alguna manera, sin embargo, la única forma de que Cmder interactúe con cmd.exe es básicamente copiar las pulsaciones de teclas a un terminal de Windows oculto que ejecuta cmd.exe. (lolwut). Cmder funciona mucho mejor con shells que un más modular (zsh, bash, etc.). . actualización : ahora uso powershell con pshazz y scoop, que es realmente agradable de usar.

  • Habiendo mejorado aún la situación de shell y terminal, nodejs para windows aún asumirá que las variables de entorno son% OF%% THE%% WINDOWS%% VARIETY% ... no $ UNIX $ STYLE. Entonces básicamente usarás bower y npm principalmente desde cmd.exe ... más ugh. Parece que ya no estoy teniendo este problema, ya que incorporé una mezcla de cross-env y commander o yargs.

    • También necesitará instalar Python para Windows, no es un problema porque existe Choco y lo tiene de vuelta allí. actualización : eche un vistazo a boxstarter, le ayudará a automatizar la configuración de su nueva máquina con recetas (o podría pasar al uso de ansible o salt).

    • experimentados desarrolladores de python y ruby ​​les dirán que los proyectos antiguos necesitarán la versión de su motor silo para cuando necesite volver a visitarlos (la actualización a versiones más nuevas no es ni conveniente ni práctica, léase: hoyos de conejo), así que querer algo como rvm y virtualenv ...

    • nvm (que solo funciona en sistemas unix linux y macosx) porque es una colección de scripts bash. Recomiendo usar ZSH como su caparazón junto con el complemento Zgen y Tarrasch/zsh-autoenv .

    • nodeenv, que es más probable ... un programa de Python que se integra con virtualenv. A algunas personas les gusta esto No tengo ningún problema con eso, pero nuestro equipo usa nvm.
    • sin embargo, está mejor con nvm-windows porque "razones". arañar eso, usar el nodist en las ventanas ... con la mejor opción, no tendrá que preocuparse por algún tipo de autoenv, ya que el diseño por parte del diseñador maneja esto.

Instalando en Windows:

  1. instalar chocolatey
  2. choco install cmder nodejs python2 choco install python2
  3. instala http://scoop.sh , luego úsalo para instalar pshazz.
  4. elimine todas las versiones de nodo instaladas manualmente de forma global.
  5. instalar nvm-windows instalar nodist.
  6. instale visual-studio 2012 express, y luego nunca lo ejecute si atesora sus ciclos de CPU. esto puede ser excesivo ya que Microsoft ha lanzado un equivalente a los elementos esenciales de construcción.
  7. instalar windows 7/10 64bit sdk

Problemas en Linux:

tldr; usa nvm. por más razones que las siguientes.

  • Tendrás que establecer la ruta global de npm node_modules a un directorio propiedad del usuario (he comenzado a usar ~/.local/share/npm ). Agradablemente, esto es algo que encontré la instalación de windows de nodejs correctamente (probablemente no intencionalmente). Un problema no al usar nvm.
  • Ubuntu ya tiene un node llamado binario, por lo que #!/usr/bin/env node node #!/usr/bin/env node no ejecutará nodejs por defecto. afortunadamente, los sistemas Debian tienen una herramienta de administración ordenada para controlar lo que emite el binario env : update-alternatives . ignore las sugerencias para usar enlaces simbólicos aquí, lo que solo causará problemas más adelante de maneras sutiles. también no es un problema cuando se utiliza nvm.

Instalando en Linux:

$ sudo apt-get install git-core git-flow build-essentials python-dev python- pip $ curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash $ npm config set prefix ~/.local/share/npm $ nvm install stable $ nvm alias default stable

referencias:



También estoy en Windows 7 y uso Virtualbox con un invitado de Linux (debian), lo recomendaría porque soy más rápido haciendo algunas cosas en la línea de comandos y luego hago clic en Arround en Windows.

Otra buena característica es que si coloca su máquina virtual en una memoria USB, puede llevarla consigo y usarla en todos los lugares donde esté instalado un host de Virtualbox, para que pueda llevar todo su entorno de desarrollo con usted.

No tiene ningún problema utilizar su editor de texto o navegador favorito en Windows, simplemente instale samba y monte su directorio de inicio en Windows. Lo mismo ocurre con su navegador, ya que la VM es solo otra máquina en su LAN, en lugar de apuntar su navegador a localhost, apúntelo a las VM Ip y usted está bien.

Aquí, obviamente, si no tienes experiencia con Linux, probablemente deberías apegarte a Windows porque te llevará algo de tiempo entrar en él.


solo mis dos centavos tal vez menos:

Te sugiero una tercera opción: instalar doblemente la instalación de Windows / ubuntu (preferiblemente ubuntu dist, que es la más amigable para la interfaz gráfica de usuario) e investigar esta opción así también estarías más familiarizado con Linux / Unix e incluso con iOS que incluso hacerle entender mejor las ventanas y un mejor programador. A veces, la caja virtual es demasiado lenta, mientras que Linux es muy eficiente con los recursos.

Si tiene la capacidad de instalar una máquina virtual, también puede intentar instalar una distribución de Linux y familiarizarse con este lenguaje / sistema de sistema operativo en el que se estructura gran parte de la web.


Tenemos un sistema a través del cual usamos un archivo de configuración, que maneja todos nuestros problemas como diferencias de ruta ( "c:/blarg" vs "~user/blarg" ) y, como bonificación, nos permite controlar las diferencias entre depuración y producción ambientes.

Node.js es multiplataforma, por lo que tenemos desarrolladores trabajando en todo tipo de computadoras, y no es un problema en absoluto.

Este es un archivo de configuración de ejemplo que uso en un proyecto de almacenamiento de archivos:

/** * All of these are mandatory except for log_level (which defaults to "info", 1) * and log_echo_to_console (which defaults to false) */ exports.config = { log_level: 0, log_file: "/path/to/send.log", request_log_file: "/path/to/send_requests.log", log_echo_to_console: true, port_number: 8088, no_notification_emails: true, image_url_base: "http://s3.amazonaws.com/", // MAKE SURE THIS ENDS IN "/" tmp_file_folder:"/tmp/", s3_info: { key: ''xxxxxx'', secret: ''yyyyy'', file_bucket: ''sendtransfer/'', }, backend_info: { db_info: { server: "localhost", user: "db_user", password: "secret", database: "SendRemote", pooled_connections: 125, idle_timeout_millis: 30000 }, memcache_info: { host: "127.0.0.1", port: "31111", pooled_connections: 200, timeout: 20000 } }, debug_server: true };

Para máquinas con Windows, simplemente cambie las rutas. ¡Está todo bien!

Luego, en el código, puede simplemente escribir:

var local = require(''local.config.js''); fs.writeFile(local.config.log_file); // etc

¡Adopta el multiculturalismo!