Tôi đang làm việc trên một ứng dụng web, lưu trữ mã nguồn trên Github và chạy ứng dụng trên Heroku. Tất cả mọi thứ hoạt động tốt, nhưng tôi có vấn đề tôi không thể quấn quanh đầu. Trước khi triển khai mã của tôi, tôi chạy một số tập lệnh để tối ưu hóa mã (khai thác, ghép nối các tệp, v.v.). Ứng dụng heroku chỉ sử dụng phiên bản được tối ưu hóa của ứng dụng.Chiến lược triển khai Heroku + Github
Về cơ bản, tôi có hai thư mục: dev
và production
. Dev
chứa mã nguồn tôi viết, production
được tạo bởi các tập lệnh xây dựng của tôi (tôi sử dụng lệnh grunt và requirejs). Hiện tại, cả hai thư mục đều nằm trong kho lưu trữ Git của tôi và cả hai đều được đẩy tới Github và Heroku. Điều tôi thích là chỉ có dev
trên Github và chỉ production
trên Heroku. Tôi đọc một số bài viết về cách thiết lập các nhánh khác nhau cho Heroku, như described in this blog. Tôi có thể thiết lập chi nhánh sản xuất và chỉ có thư mục production
trong đó trong khi vẫn giữ thư mục dev
với chi nhánh chính của mình không? Hoặc tôi sẽ cần kho riêng biệt?
Có ai đã thử điều gì đó tương tự không? Tôi cho rằng đây không phải là thứ gì đó bình thường.
Đây là những gì tôi đang làm bây giờ ... Tôi tạo ra buildpack tùy chỉnh của riêng tôi (xem https://github.com/mbuchetics/heroku-buildpack-nodejs-grunt) sử dụng Grunt để xây dựng thư mục sản xuất trên mọi triển khai. Nó hoạt động tốt và tôi có thể giữ tất cả các công cụ sản xuất ra khỏi repo git. – slurmomatic
Một tính năng khác mà tôi đã sử dụng trong buildpack chuẩn được hỗ trợ thông qua NPM. Bạn có thể thêm một tập lệnh '" postinstall "' vào 'package.json' và chạy mã tùy ý theo cách này. https://npmjs.org/doc/scripts.html – mikegradek