2013-04-02 15 views
6

Tôi chạy đoạn mã sau để cài đặt các mô-đun gạch js:Tại sao mô-đun gạch dưới không có sẵn trong bảng điều khiển Node.js?

npm install -g underscore 

sau đó tôi đã cố gắng để truy cập nó thông qua các nút điều khiển, nhưng tôi nhận được lỗi sau:

node 
> __ = require('underscore'); 
Error: Cannot find module 'underscore' 
    at Function.Module._resolveFilename (module.js:338:15) 
    at Function.Module._load (module.js:280:25) 
    at Module.require (module.js:362:17) 
    at require (module.js:378:17) 
    at repl:1:6 
    at REPLServer.self.eval (repl.js:109:21) 
    at rli.on.self.bufferedCmd (repl.js:258:20) 
    at REPLServer.self.eval (repl.js:116:5) 
    at Interface.<anonymous> (repl.js:248:12) 
    at Interface.EventEmitter.emit (events.js:96:17) 

Tại sao không ví dụ này làm việc?

+0

Biến môi trường 'NODE_PATH' của bạn là gì? Dấu gạch dưới được cài đặt ở đâu? Cài đặt có thành công không? –

Trả lời

6

Tôi không thực sự biết tại sao, nhưng nó không thực sự (khi cài đặt gạch dưới trên toàn cầu, như bạn đã làm).

Nếu bạn cài đặt nó mà không -g, cần làm việc (phải cẩn thận, tuy nhiên, như '_' đã được sử dụng bởi Node REPL để giữ kết quả của các hoạt động cuối cùng, như đã giải thích ở đây: Using the Underscore module with Node.js

bạn có thực sự cần phải cài đặt nó trên toàn cầu

+1

Ok, không nhớ rằng, nếu bạn cài đặt mô-đun trên toàn cầu, khi yêu cầu chúng, bạn phải yêu cầu chúng bằng cách sử dụng yêu cầu ('{prefix}/module') Như được giải thích tại đây: http: //blog.nodejs. org/2011/03/23/npm-1-0-global-vs-local-installation/ Trong trường hợp của tôi, khi tôi sử dụng nvm, mô-đun đã được cài đặt tại .nvm/$ VERSION/lib/node_modules vì vậy thêm tuyến đường đó vào yêu cầu trong Node REPL chỉ hoạt động. Hy vọng nó sẽ giúp !! – Javo

4

tôi chỉ có cùng một vấn đề

$ export NODE_PATH=/usr/local/share/npm/lib/node_modules 

sắp xếp nó ra cho tôi;? điều này rõ ràng phụ thuộc vào nền tảng của bạn và nơi NPM đã cài đặt nó Ngoài ra, như đã đề cập trong. Ans của Javo wer, không đặt tên nó _ trong REPL.

+0

Cảm ơn. Tôi đang sử dụng nvm và nút v4.2.1 và tôi đã phải 'xuất NODE_PATH = ~/.nvm/phiên bản/nút/v4.2.1/lib/node_modules /' –