2013-09-04 38 views
13

Bên composer.json của tôi, có một thiết lập postinstall móc như sau:NPM postinstall không thành công với nhiều lệnh

"scripts" : { 
    "dist" :  "node dist; node_modules/.bin/doccoh src/package.js", 
    "postinstall" : "node_modules/.bin/grunt setup || true; node_modules/.bin/bower install", 
    "start" :  "node server.js" 
} 

Bất cứ khi nào tôi chạy nó (trên Win từ Git/Gnu Bash CLI), tôi kết thúc với

command not found. either the command was written wrong or couldn't be found

dịch Rough từ lỗi CLI Đức.

Tôi đã thử chia thành nhiều phần riêng biệt ;/dấu chấm phẩy và cd vào thư mục đó, nhưng nó kết thúc với thông báo lỗi tương tự. Thay thế toàn bộ lệnh postinstall được cài đặt đơn giản ls sẽ hoạt động. Vì vậy, tôi đoán sự cố có thể là dấu chấm phẩy tách biệt hoặc sử dụng sai lệnh. Nhưng nhìn chung tôi không biết có gì sai.

Lưu ý: Tôi nhận được grunt-cli phiên bản 0.1.9 và grunt phiên bản 0.4.1 được cài đặt trên toàn cầu.

+2

Đây có thể là hơi muộn, nhưng: Bạn có thể cài đặt 'grunt',' grunt-cli' và 'bower' cục bộ (!) Rồi thả đường dẫn (' node_modules/.bin') từ 'package.json' của bạn. NPM sẽ tìm thấy 'grunt' và' bower' nếu chúng được cài đặt bên trong 'node_modules': https://npmjs.org/doc/misc/npm-scripts.html (phần" ENVIRONMENT ") – svckr

+1

@svckr +1 xóa bỏ' phần node_modules/.bin' đã thực hiện thủ thuật cho tôi. – James

+0

@svckr Bạn có muốn thêm câu trả lời đó làm câu trả lời không? – kaiser

Trả lời

2

Tôi bắt đầu tìm kiếm điều gì đó và nghĩ rằng điều này có thể giúp người khác. Tôi đã thấy việc chuyển sang tệp postinstall.js dễ dàng hơn khi mọi thứ trở nên phức tạp một chút. Điều này làm cho nó dễ dàng hơn để đối phó với di chuyển về phía trước.

+4

Bạn có muốn ghi lại [chỉnh sửa] và mô tả quy trình của bạn chi tiết hơn một chút không? Cảm ơn trước. – kaiser

30

Tôi hơi muộn để trả lời, nhưng nếu bạn đang ở trên Windows, nhiều lệnh trên một dòng duy nhất được thực hiện với việc sử dụng các & &

postinstall: "some command && some other -c" 
+5

bạn có biết cách để làm điều này với hỗ trợ đa nền tảng không? – Plato

+10

@Plato toán tử '&&' cũng sẽ hoạt động trên các hệ thống * nix. –

+1

Sẽ không hoạt động trên PowerShell mặc dù .. –

Các vấn đề liên quan