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 (из источника?), но я не понимаю.
Во-вторых, я мог (вручную) восстановить модуль, но я не знаю, как это сделать.
Я ищу любое решение.
Ответы
Ответ 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), проблема была решена.