Tôi đang cố gắng cài đặt toàn cầu một mô-đun npm mà tôi vừa xuất bản. Mỗi khi tôi cố gắng cài đặt, từ npm hoặc thư mục, tôi đều gặp lỗi này.
npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/takeapeek/lib/cmd.js'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Linux 3.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/giodamlio/npm-debug.log
npm ERR! not ok code 0
Tôi đang sử dụng sudo và tôi đã kiểm tra ba lần mọi thứ trong gói mọi thứ sẽ hoạt động. Tôi đã thực hiện một số tìm kiếm xung quanh và thấy một vài trường hợp trình mô phỏng không có trường hợp nào được giải quyết. Đây là những gì tôi đã thử.
- Nâng cấp npm (
sudo npm install -g npm
) - Xóa bộ nhớ cache npm chung (
sudo npm cache clear
) - Xóa bộ nhớ cache npm của người dùng (
npm cache clear
)
Tôi nhận thấy rằng lỗi xảy ra với tệp tôi đang liên kết đến đường dẫn, cụ thể là khi npm cố gắng thực hiện chmod. Đó không phải là vấn đề, của tôi lib/cli.js
có quyền bình thường và npm có quyền của người dùng cấp cao trong quá trình cài đặt này.
Sau khi tìm hiểu các tài liệu npm, tôi đã tìm thấy một tùy chọn có thể ngăn npm tạo các liên kết bin ( --no-bin-links
), khi tôi thử cài đặt với nó, nó hoạt động tốt.
Vậy thỏa thuận là gì? Đây có phải là một số lỗi trường hợp rìa kỳ lạ mà vẫn chưa có giải pháp?
Chỉnh sửa: Để tham khảo, đây là mô-đun tôi đã tải lên
--no-bin-links
chỉ dừng NPM từ symlinking file trong của package.json bin
băm để con đường vào cài đặt toàn cầu.