2013-05-01 35 views
20

Đây là điều. Cấu hình của tôi là Ubuntu 13.04, Node.js v0.10.5 và phiên bản NPM 1.2.18.Node-waf: không tìm thấy

Tôi cố gắng để cài đặt Node.js mô-đun "giày" và tôi đã nhận lỗi này:

[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$ 

Tôi đã googling và tôi thấy rằng nút-waf được thay thế bằng nút-làm người nào nhức nhối. Tôi cũng thấy rằng nút-waf thể được cài đặt với

sudo apt-get install nodejs-dev 

Vấn đề là tôi đang sử dụng mới nhất node.js package by Chris Lea mà không bao gồm dev nữa. Vì vậy, có hai tùy chọn để giải quyết vấn đề.

Trước tiên, tôi có thể cài đặt nút-waf (từ nguồn?), Nhưng tôi không làm cách nào.

Thứ hai, tôi có thể (thủ công) sửa mô-đun, nhưng tôi không làm cách nào.

Tôi đang tìm bất kỳ giải pháp nào.

+0

Xem http://stackoverflow.com/questions/15024421/node-js-centos-node-waf/15979279#15979279 –

Trả lời

2

Thực tế là rbytes gây ra sự cố.

Để làm cho nó phức tạp hơn: rbytes không phụ thuộc trực tiếp cho shoe, nhưng đối với sockjs. Và looking at the code, sẽ hoạt động mà không cần rbytes.

Kể từ giày tuyên bố là như một tùy chọn phụ thuộc, shoe không được cài đặt:

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

Vì vậy, bạn chỉ có thể sử dụng nó không phụ thuộc vào cảnh báo.

+0

Cảm ơn bạn đã trả lời. Tôi không biết rằng tôi có thể sử dụng "giày" mặc dù cảnh báo. Điều này về cơ bản đã giải quyết được vấn đề của tôi. Dù sao tôi vẫn đang tìm câu trả lời cho hai câu hỏi của tôi. Tôi có thể lấy nút-waf ở đâu hoặc làm thế nào tôi có thể cài đặt mô-đun mà không cần NPM. – Marek

+2

'node-waf' không được dùng nữa với Node 0.8; thay thế của nó, 'node-gyp', không thể xây dựng' rbytes' hoặc (tôi đã thử: sao chép repo và sử dụng 'node-gyp configure build'). Nếu bạn thực sự muốn sử dụng nó, bạn có thể sử dụng [nvm] (https://github.com/creationix/nvm) để cài đặt một nút trước 0.8. – robertklep

2

Tôi chưa may mắn nhận được nút-waf trên máy tính của mình, vì vậy tôi quyết định chia nhỏ thứ và di chuyển nó sang nút-gyp để nó hoạt động.

ngã ba của tôi là tại https://github.com/eddydas/node-sleep

Để có được nó hoạt động, trước tiên hãy chắc chắn rằng bạn có nút-làm người nào nhức nhối bởi

$ npm install node-gyp 

Sau đó, sao chép toàn bộ dự án từ GitHub (hoặc bằng bưu điện hoặc Git, nó tùy thuộc vào bạn) và cài đặt từ nó.

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

Tôi đã cố gắng hết sức để làm cho mọi thứ hoạt động. Nếu nó không suôn sẻ, xin vui lòng cho tôi biết. Hy vọng nó giúp!

11

node-waf đã được thay thế bởi node-gyp

Cài đặt nút-đầy tớ trường trung học sử dụng: sudo npm install -g node-gyp

Lưu ý: Để xây dựng với nút-đánh người nào một trận tập tin cấu hình binding.gyp là bắt buộc. Ví dụ:

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

Cập nhật 'package.json' của tôi để sử dụng các công cụ' ":" {"npm": "1.4.x"} 'đã sửa lỗi này cho tôi. Trước đây nó đã là '1.3.x'. – Meekohi

+0

gặp sự cố tương tự với 'npm install archive' ... – Michael

1

Tôi đã nâng cấp phiên bản nút của mình (từ 0.4.4 lên 0.6.2), sự cố đã được giải quyết.