Tôi đang thận trọng hơn bình thường vì tôi đã bị nhầm lẫn bởi hành vi npm
trong quá khứ.
Tôi đang trên một máy Mac và đã cài đặt Node.js qua brew install node
.
Bây giờ tôi muốn chạy jslint.js
trên dòng lệnh như lệnh jslint
tôi thấy rằng cách chính tắc để thực hiện điều này là sudo npm install -g jslint
chạy thành công với đầu ra này:
$ sudo npm install -g jslint
npm http GET https://registry.npmjs.org/jslint
npm http 200 https://registry.npmjs.org/jslint
npm http GET https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http 200 https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http GET https://registry.npmjs.org/nopt
npm http 200 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http GET https://registry.npmjs.org/abbrev
npm http 200 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/abbrev/-/abbrev-l.0.4.tgz
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
/usr/local/share/npm/bin/jslint -> /usr/local/share/npm/lib/node_modules/jslint/
bin/jslint.js
jslint@0.1.9 /usr/local/share/npm/lib/node_modules/jslint
└── nopt@1.0.10 (abbrev@1.0.4)
Sau đó
$ jslint ply.js
zsh: command not found: jslint
do /usr/local/share/npm/bin
không phải là ở tôi $PATH
.
1) Tại sao brew
không cài đặt npm
bin
đường dẫn toàn cầu đến đường dẫn? Có lẽ nó đã làm, nhưng một cái gì đó zsh
đang làm nó rối tung lên. Tôi có thể tìm thấy nó ở đâu?
2) Tôi có nên làm điều này? (Nối :/usr/local/share/npm/bin
vào phần xuất khẩu $PATH
ở dưới cùng của tôi ~/.zshrc
)
Có vẻ như đây không phải là cách đúng đắn để làm điều đó bởi vì nếu tôi cài đặt một cái gì đó khác sau này (sử dụng Homebrew hoặc một cái gì đó) tôi sẽ cần phải thêm nó vào tập lệnh khởi động zsh của mình để đặt đường dẫn. Tôi đoán trong trường hợp cụ thể này, đó chỉ là vấn đề npm install -g
không tạo ra các liên kết chính xác ở một vị trí "thích hợp" (như /usr/local/bin
có thể).
Tôi nghĩ rằng những gì tôi sẽ làm là tự xây dựng các liên kết tượng trưng /usr/local/bin
cho bất kỳ chương trình nào mà tôi gặp rắc rối và nó phải đủ tốt cho mục đích của tôi.
EDIT : Tôi đang cập nhật điều này vào năm 2019, bởi vì câu hỏi cũ này rất phổ biến nhưng hiện đã lỗi thời cả về quy trình làm việc cá nhân của tôi và cả về cách tốt nhất để cài đặt nút và quản lý các phụ thuộc khác nhau của nó.
Quy trình công việc cá nhân của tôi bây giờ là sử dụng trình cài đặt thu được từ nodejs.org để cài đặt nút trên các hệ thống. Tôi thực sự tin tưởng điều này hơn chính gói homebrew, vì nó biết cách quản lý tốt nhất các tệp. Nếu bạn muốn thay đổi nút hệ thống của mình từ 8.10 thành 10.15, cho dù trên Mac hay Windows, chỉ cần tải xuống trình cài đặt từ nodejs.org cho 10.15 cho HĐH của bạn. Cố gắng nâng cấp nút được cài đặt qua homebrew luôn được chứng minh là một cách tiếp cận khó khăn hơn theo kinh nghiệm của tôi.
Ngoài ra, điều lớn nhất cần chỉ ra là việc sử dụng sudo như trong phần cài đặt jslint npm của tôi ở trên rất không được khuyến khích; Tôi khá chắc chắn rằng các gói homebrew không bao giờ nên được cài đặt hoặc tương tác với bất kỳ cách nào bằng cách sử dụng siêu người dùng. Nó không cần thiết, và sẽ dẫn đến đau đầu cho phép tập tin!
Hơn nữa, tôi khuyên bạn nên sử dụng ESLint trên jslint và đã không sử dụng jslint trong nhiều năm.