Подтвердить что ты не робот

Node -waf: не найдено

Вот что. Моя конфигурация - Ubuntu 13.04, Node.js v0.10.5 и NPM версия 1.2.18.

Я пытаюсь установить Node.js модуль "shoe", и я получил эту ошибку:

[email protected]:/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])
[email protected]:/media/tc/examples/node/05.01$

Я был googling, и я обнаружил, что node -waf был заменен на node -gyp. Я также обнаружил, что node -waf можно установить с помощью

sudo apt-get install nodejs-dev

Проблема в том, что я использую последний node.js пакет Chris Lea, который больше не включает dev. Таким образом, есть две возможности для решения проблемы.

Во-первых, я могу установить node -waf (из источника?), но я не понимаю.

Во-вторых, я мог (вручную) восстановить модуль, но я не знаю, как это сделать.

Я ищу любое решение.

4b9b3361

Ответ 1

node-waf был заменен на node-gyp

Установите node -gyp, используя: sudo npm install -g node-gyp

Примечание. Для сборки с node -gyp требуется файл конфигурации binding.gyp. Пример:

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

Ответ 2

На самом деле rbytes, который вызывает проблему.

Чтобы сделать его еще более сложным: rbytes не является прямой зависимостью для shoe, но для sockjs. И глядя на код, который должен функционировать без rbytes тоже.

Так как объявление обуви является дополнительной зависимостью, shoe устанавливается:

npm WARN optional dep failed, continuing [email protected]
         ^^^^^^^^             ^^^^^^^^^^        

Поэтому вы должны просто использовать его независимо от предупреждения.

Ответ 3

Мне не повезло получить node -waf на моей машине, поэтому я решил развить эту вещь и перенести ее на node -gyp, чтобы она работала.

Мой форк находится в https://github.com/eddydas/node-sleep

Чтобы заставить его работать, сначала убедитесь, что у вас есть node -gyp by

$ 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

Я старался изо всех сил заставить эту работу работать. Если это не идет гладко, пожалуйста, сообщите мне. Надеюсь, это поможет!

Ответ 4

Я просто обновил версию node (от 0.4.4 до 0.6.2), проблема была решена.