2013-03-16 12 views
21

Tôi gặp sự cố khi chạy grunt-cli sau khi cài đặt. Tôi chạyKhông thể tìm thấy mô-đun 'tìm kiếm-đồng bộ hóa' khi cố gắng chạy grunt

npm install -g grunt-cli 

sau đó chạy lỗi grunt với

node.js:63 
    throw e; 
    ^
Error: Cannot find module 'findup-sync' 
    at loadModule (node.js:275:15) 
    at require (node.js:411:14) 
    at Object.<anonymous> (/home/tmartin/bin/grunt:9:14) 
    at Module._compile (node.js:462:23) 
    at Module._loadScriptSync (node.js:469:10) 
    at Module.loadSync (node.js:338:12) 
    at Object.runMain (node.js:522:24) 
    at Array.<anonymous> (node.js:756:12) 
    at EventEmitter._tickCallback (node.js:55:22) 
    at node.js:773:9 

Đây là những gì tôi đã cài đặt:

[email protected]:~$ npm list -g 
/home/tmartin/lib 
└─┬ [email protected] 
    ├─┬ [email protected] 
    │ ├─┬ [email protected] 
    │ │ ├── [email protected] 
    │ │ ├── [email protected] 
    │ │ └─┬ [email protected] 
    │ │ ├── [email protected] 
    │ │ └── [email protected] 
    │ └── [email protected] 
    └─┬ [email protected] 
    └── [email protected] 
+3

Tôi gặp sự cố này vì tôi đã cài đặt grunt-cli và grunt như thế này 'npm install -g grunt grunt-cli'. Grunt-cli cần phải được cài đặt trước khi grunt vì vậy nó nên được 'npm install-gr grunt-cli grunt ' – davidcondrey

+0

Tôi đã có một lỗi rất giống nhau, và chuyển đổi thứ tự của npm cài đặt đã làm nó cho tôi là tốt. –

Trả lời

7

tôi phải cài đặt và liên kết findup động đồng bộ hóa và một vài gói NPM khác để có được những vấn đề phụ thuộc này biến mất. Tôi mặc dù npm đã có nghĩa vụ phải xử lý chúng cho chúng tôi, nhưng cài đặt các phụ thuộc bằng tay làm cho các vấn đề biến mất.

npm install findup-sync -g

npm link findup-sync

+1

Bạn nghĩ rằng điều này sẽ hoạt động dựa trên lỗi, nhưng trên thực tế, tôi đã có các tệp đồng bộ hóa tìm kiếm ở đúng nơi. Tôi chạy điều này một lần nữa nhưng vẫn lỗi tương tự. FWIW Tôi đang gặp sự cố này trên OS X. Có thể là lỗi phát tán Lỗi hoặc Grode. –

2

Điều này là do NPM không thiết lập sự cho phép quyền thư mục con node_modules trong/usr/lib/node_modules/grunt-cli. Trong trường hợp của tôi, tôi đã có:

drwxr-x--- 6 nobody root 4096 16 févr. 17:08 node_modules 

Khi chạy grunt là người dùng không phải root, tôi đã có lỗi tương tự (Không thể tìm thấy mô-đun 'findup-sync') vì một sự cho phép từ chối để đọc thư mục này.

Giải pháp là khắc phục sự cho phép với chmod: chmod a + rx node_modules.

Nhưng trên thực tế, tất cả các thư mục đều có liên quan. Cách tốt nhất là todo:

find /usr/lib/node_modules/grunt-cli -type d -exec chmod a+rx {} \; 

Đây có thể là lỗi phân phối (tôi sử dụng Archlinux).

4

Tôi đã khai thác một lần nữa để cài đặt lại grunt-cli trên toàn cầu và trong repo của tôi.

npm install -g grunt-cli

cd myrepo

npm install grunt-cli

Tôi nghĩ rằng cài đặt Yosemite đã phá vỡ một số điều trong các tập tin của tôi ...

1

Điều này có vẻ đơn giản, nhưng nếu bất cứ ai khác là không chắc chắn nếu có một vấn đề quyền, hãy thử chạy sudo grunt sau đó đi từ đó.