2012-10-15 36 views
5

Chạy git push heroku master luôn gây nên một bước mà nhắc nhở:Skip "Cài đặt phụ thuộc với NPM" bước khi đẩy một ứng dụng Node.js để Heroku

Cài đặt phụ thuộc với NPM

Bước này tải và cài đặt lại tất cả các phụ thuộc một lần nữa ngay cả khi nó đã tồn tại. Điều này là rất tốn thời gian và tôi muốn bỏ qua bước này đôi khi khi tôi triển khai mà tôi biết các phụ thuộc là như nhau.

Có bất kỳ lệnh hoặc tùy chọn nào thực hiện việc này không?

+2

Thật không may, nếu bạn xem qua [Gói xây dựng Heroku cho node.js] (https://github.com/heroku/heroku-buildpack-nodejs/blob/master/bin/compile#L171), thì không có 't xuất hiện để bỏ qua tùy chọn' npm install'. Nó luôn chạy 'npm install --production', tiếp theo là' npm rebuild'. Tuy nhiên, có thể tạo [buildpack của riêng bạn trên heroku] (https://devcenter.heroku.com/articles/buildpacks) chỉ định một hành vi khác cho 'npm install'. – smithclay

Trả lời

0

cố gắng loại bỏ

node_modules

ví dụ từ bạn .gitignore

1

của nó được một thời gian dài kể từ khi bạn hỏi câu hỏi này, bây giờ buildpack cache Heroku node_modules, vì vậy thời gian cài đặt sẽ nhanh hơn nhiều.

Nếu bạn vẫn muốn chặn npm install, đây là một giải pháp.

Khi tôi viết điều này, gói xây dựng Heroku mặc định không cho phép bỏ qua cài đặt npm hoàn toàn. Bạn có thể thấy trong file dependencies.sh, dòng này sẽ luôn chạy:

npm install --unsafe-perm --userconfig $build_dir/.npmrc 2>&1 

Tuy nhiên, nếu bạn tạo một tập tin gọi là .npmrc trong thư mục dự án của bạn với nội dung sau:

dry-run 

Điều này sẽ gây NPM cài đặt để không sửa đổi thư mục node_modules hiện tại của bạn.

Lưu ý rằng sự thay đổi này cũng sẽ áp dụng cho các lệnh npm prune rằng Heroku chạy, nhưng SẼ KHÔNG áp dụng đối với các lệnh npm rebuild (mà có lẽ tốt).

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