[npm] cài đặt global package không cần quyền root trên linux

Tại sao phải làm điều này?

  • Vì quá mệt mỏi phải gõ sudo trước mỗi lệnh npm install -g

  • Gặp lỗi khi cài yeoman genarator

Sau khi search loanh quanh cuối cùng mình tìm được cách này. (Lưu ý: đọc chú ý cuối bài trước khi làm)

1 – Tạo thư mục .npm-packages trong home để đảm bảo bạn có đủ quyền với nó

mkdir -p ~/.npm-packages  

2 – Thêm biến vào file ~/.bashrc

NPM_PACKAGES="~/.npm-packages"  

3 – Tạo file ~/.npmrc và thêm cái dòng này vào:

prefix=~/.npm-packages  

4 – Thêm dòng này vào file ~/.bashrc để node nó biết chỗ để global package, ngoài ra thêm mấy dòng cuối để tìm được các gói đã cài rồi với cả sách hướng dẫn sử dụng.

NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"  
PATH="$NPM_PACKAGES/bin:$PATH"  
# Unset manpath so we can inherit from /etc/manpath via the `manpath`
# command
unset MANPATH  # delete if you already modified MANPATH elsewhere in your config  
MANPATH="$NPM_PACKAGES/share/man:$(manpath)"  

Chú ý cực to:

– Dường như từ sau npm 1.4.10 file npmrc đã không còn được dùng nữa, các thím phải kiểm tra xem mình đang dùng ver nào bằng npm -v nhé. Nếu trót dùng ver mới hơn mà vẫn muốn chơi bài này thì downgrade nó đi:

sudo npm i -g [email protected]  

Nếu không thì chỉ còn cách thêm tham số –prefix=”/path/to/dir” mỗi lần cài -g thôi :P

Theo http://stackoverflow.com/questions/10081293/install-npm-into-home-directory-with-distribution-nodejs-package-ubuntu/13021677#13021677

Hà Phạm

Hai năm kinh nghiệm làm Web Developer. Ngoài ra đã khởi nghiệp thất bại một lần. Miễn trừ trách nhiệm: Quan điểm cá nhân, có thể thay đổi bất cứ lúc nào mà không cần báo trước.

Hanoi, Vietnam http://mahpahh.com
comments powered by Disqus