lunes, 24 de octubre de 2011

node.js con windows. Instalar paquetes sin npm

Hoy tuve la necesidad de hacer un pequeño programilla con node.js. Tenía que hacerlo rapidito y en windows, que era lo que tenía a mano en ese momento. Me descargué la version de node.js ejecutable en windows, la versión unstable v.0.5.10. Hasta ahí todo bien.

Necesitaba utilizar el módulo http-proxy de nodejitsu (https://github.com/nodejitsu/node-http-proxy) y entonces me di cuenta de que no tenía a mano npm para descargarlo. Podía instalarlo, pero necesitaría instalar antes cygwin, etc. etc. etc y no tenía ni tiempo de ganas para probar en ese momento. Afortunadamente, npm no es necesario para instalar librerías (te acostumbras tan rápido a usar npm que a veces ni se te ocurre que se puede trabajar con node sin él), porque manualmente resulta bastante trivial.

El primer paso fue crear la carpeta node_modules donde tenía el fichero que quería ejecutar con node.

El segundo paso, para instalar los el módulo http-proxy, fue descargar la última versión de github, en un fichero llamado "nodejitsu-node-http-proxy-v0.7.3.7-gcdb4524.zip".  Lo descomprimí dentro de la carpeta node_modules, y renombre la carpeta nodejitsu-node-http-proxy-v0.7.3.7-gcdb4524 a http-proxy, que es la referencia que vamos utilizar en los ficheros js ( require("http-proxy") ).

Todavía no estaba listo, porque al no usar npm, no se descargaron las dependencias de http-proxy. Si ejecutamos un fichero con http-proxy, node se quejará de que faltan dichas dependencias. Para localizarlas, consultarmos el fichero node_modules/http-proxy/package.json. En la propiedad "dependencies" vemos que http-proxy depende de colors, optimist y pkginfo.

Repetí la operación para esas tres librerías y ya me pude centrar en desarrollar el código de mi proxy inverso.

La estructura quedó de la siguiente manera

carpeta aplicación
├── fichero.js
└── node_modules
        ├── http-proxy
        ├── pkginfo
        ├── optimist
        └── colors


Pd. Las otras tres librerías están en:

1 comentario:

  1. Hola, gracias por la información pero donde se encuentra la propiedad "dependencies"...no la logro encontrar.

    ResponderEliminar