node.js - error - reparar node js
Node-waf: no encontrado (4)
Aquí está la cosa. Mi configuración es Ubuntu 13.04, Node.js v0.10.5 y NPM versión 1.2.18.
Estoy tratando de instalar el módulo "shoe" de node.js y recibí este error:
marek@nassenfuss:/media/tc/examples/node/05.01$ sudo npm install
npm http GET https://registry.npmjs.org/shoe
npm http 304 https://registry.npmjs.org/shoe
npm http GET https://registry.npmjs.org/node-uuid/1.3.3
npm http GET https://registry.npmjs.org/faye-websocket/0.4.0
npm http GET https://registry.npmjs.org/rbytes/0.0.2
npm http 304 https://registry.npmjs.org/node-uuid/1.3.3
npm http 304 https://registry.npmjs.org/rbytes/0.0.2
npm http 304 https://registry.npmjs.org/faye-websocket/0.4.0
> [email protected] install /media/tc/examples/node/05.01/node_modules/shoe/node_modules/sockjs/node_modules/rbytes
> node-waf configure build
sh: 1: node-waf: not found
npm WARN optional dep failed, continuing [email protected]
[email protected] node_modules/shoe
├── [email protected]
└── [email protected] ([email protected], [email protected])
marek@nassenfuss:/media/tc/examples/node/05.01$
Estaba buscando en Google y encontré que node-waf fue reemplazado por node-gyp. También encontré que node-waf se puede instalar con
sudo apt-get install nodejs-dev
El problema es que estoy usando el último paquete node.js de Chris Lea, que ya no incluye el desarrollo. Entonces hay dos opciones para resolver el problema.
Primero, podría instalar node-waf (¿desde el origen?), Pero no sé cómo.
En segundo lugar, podría (manualmente) reparar el módulo, pero no sé cómo.
Estoy buscando alguna solución.
En realidad, los rbytes son los causantes del problema.
Para hacerlo aún más complejo: rbytes
no es una dependencia directa de shoe
, sino de sockjs
. Y mirando el código , eso debería funcionar sin rbytes
también.
Como shoe declara es una dependencia opcional , el shoe
se instala:
npm WARN optional dep failed, continuing [email protected]
^^^^^^^^ ^^^^^^^^^^
Entonces debería poder usarlo independientemente de la advertencia.
No he tenido suerte en obtener nodo-waf en mi máquina, así que decidí bifurcarlo y migrarlo a node-gyp para que funcione.
Mi tenedor está en https://github.com/eddydas/node-sleep
Para que funcione, primero asegúrate de tener node-gyp por
$ npm install node-gyp
Luego, clone todo el proyecto desde GitHub (ya sea por ZIP o Git, depende de usted) e instálelo desde allí.
$ cd ~
$ wget "https://codeload.github.com/eddydas/node-sleep/zip/master"
$ unzip master
$ cd YOUR_NODE_JS_PROJECT_FOLDER
$ npm install ~/node-sleep-master
Intenté hacer todo lo posible para que la cosa funcionara. Si no funciona bien, no dude en avisarme. ¡Espero eso ayude!
node-waf
ha sido reemplazado por node-gyp
Instalar node-gyp usando: sudo npm install -g node-gyp
Nota: Para compilar con node- binding.gyp
se requiere el archivo de configuración binding.gyp
. Ejemplo:
{
"targets": [
{
"target_name": "binding",
"sources": [ "src/binding.cc" ]
}
]
}
Simplemente actualicé mi versión de nodo (de 0.4.4 a 0.6.2), se resolvió el problema.