2010-09-15 10 views
11

Đặt npm lên khi người dùng root là straighforward và workds. Ngoại trừ bạn phải chạy lệnh npm dưới dạng root (không được khuyến nghị). Vì vậy, tôi nghĩ rằng tôi muốn thử thiết lập nó như là một người dùng không phải root.Làm cách nào để thiết lập npm (trình quản lý gói nút) mà không có quyền truy cập root?

Theo tài liệu NPM, người dùng không phải root mà không cần truy cập root có thể thiết lập NPM bởi:

  1. tạo ra một tập tin .npmrc với root, binroot, và manroot trỏ đến thư mục mà người dùng đang sở hữu.
  2. Sau đó chạy tập lệnh cài đặt.

OK. Cài đặt là tốt.

Nhưng nút không thể xem các gói do npm cung cấp.

Vậy làm cách nào để làm cho nút nhận thức được các gói do npm cung cấp? (Tôi không phải làm bất cứ điều gì khi tôi đã cài đặt npm trước đây). Tôi có thể đặt require.paths trong nút hoặc đặt biến môi trường NODE_PATH, nhưng để làm gì?

Cảm ơn.

+0

Hiện tại, npm không có nút? Tôi đã không bao giờ phải chạy npm commans như là người chủ trừ khi tôi đang sử dụng -g ... – tjameson

Trả lời

5

Qua thăm dò chút, có vẻ như bạn có thể:

  1. thiết lập của bạn NODE_PATH để bất cứ điều gì thư mục gốc NPM là, hoặc
  2. trong khi nút, gọi require.paths.push('path_to_npm_root')
+0

Và nếu bạn đang cố gắng để gỡ lỗi này từ repl, xem http://github.com/ry/node/issues/ đóng # ấn bản/303 – keturn

4

này làm việc cho tôi:

  1. Tạo ~/.node thư mục

    mkdir ~/.node 
    
  2. Sửa ~/.npmrc và thêm dòng

    prefix = ~/.node 
    
  3. Chỉnh sửa của bạn ~/.profile hoặc ~/.bash_profile và thêm những dòng này

    PATH="$HOME/.node/bin:$PATH" 
    NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH" 
    

Bây giờ tôi có thể làm những việc như npm -g install http-server và nó sẽ cao tới ~/.node không có gốc. Với điều này tại chỗ, khi tôi gõ http-server, nó chạy.