Node-waf:找不到

时间:2013-05-01 12:21:11

标签: node.js npm

这是事情。我的配置是Ubuntu 13.04,Node.js v0.10.5和NPM版本1.2.18。

我正在尝试安装node.js模块“shoe”,我收到了这个错误:

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

> rbytes@0.0.2 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 rbytes@0.0.2
shoe@0.0.10 node_modules/shoe
├── sockjs-client@0.0.0-unreleasable
└── sockjs@0.3.1 (node-uuid@1.3.3, faye-websocket@0.4.0)
marek@nassenfuss:/media/tc/examples/node/05.01$

我在谷歌搜索,我发现node-waf被node-gyp取代。我还发现node-waf可以用

安装
sudo apt-get install nodejs-dev

问题是我使用的是最新的node.js package by Chris Lea,不再包含dev。因此有两种方法可以解决这个问题。

首先,我可以安装node-waf(来自source?),但我不知道如何。

其次,我可以(手动)修复模块,但我不知道如何。

我正在寻找任何解决方案。

5 个答案:

答案 0 :(得分:13)

node-waf已被node-gyp

取代

使用以下命令安装node-gyp: sudo npm install -g node-gyp

注意:要使用node-gyp构建,需要配置文件binding.gyp。 例如:

{
  "targets": [
    {
      "target_name": "binding",
      "sources": [ "src/binding.cc" ]
    }
  ]
}

答案 1 :(得分:2)

实际上rbytes导致了这个问题。

要使其更加复杂:rbytes不是shoe的直接依赖,而是sockjs。而且looking at the code也可以在没有rbytes的情况下运行。

由于shoe声明为可选依赖项,shoe确实已安装:

npm WARN optional dep failed, continuing rbytes@0.0.2
         ^^^^^^^^             ^^^^^^^^^^        

所以无论警告如何,你都应该能够使用它。

答案 2 :(得分:2)

我没有幸运在我的机器上获得node-waf,所以我决定将它分叉并将其迁移到node-gyp以便它可以工作。

我的叉子位于https://github.com/eddydas/node-sleep

要使其正常工作,首先要确保你有

的node-gyp
$ npm install node-gyp

然后,从GitHub克隆整个项目(通过ZIP或Git,这取决于你)并从中安装。

$ cd ~
$ wget "https://codeload.github.com/eddydas/node-sleep/zip/master"
$ unzip master
$ cd YOUR_NODE_JS_PROJECT_FOLDER
$ npm install ~/node-sleep-master

我尽力让事情发挥作用。如果不顺利,请随时告诉我。希望它有所帮助!

答案 3 :(得分:1)

我只是升级了我的节点版本(从0.4.4升级到0.6.2),问题得到了解决。

答案 4 :(得分:0)

安装 node lts 版本为我解决了这个问题

npm install n -g

sudo n lts