2014-11-12 18 views
8

Tôi có ứng dụng ExtJS 5.0 trỏ đến API. Ngày phát triển, tôi muốn sử dụng http://localhost nhưng trên sản xuất tất nhiên là một số máy chủ khác.ExtJS (5) Cấu hình tạo Sencha cho các môi trường khác nhau

Có cách nào để đặt biến của ứng dụng từ bên ngoài trong thời gian sencha app build không? Hoặc truy cập một số biến ENV trong mã?

Sẽ tuyệt vời nếu có ai có thể giúp tôi.

Thank you very much,

Sebastian

Trả lời

11

Tôi tìm thấy một cách để làm điều này nhưng tôi không chắc chắn nó là cách tốt nhất. Trong app.json của bạn, bạn sẽ tìm thấy một phần như sau:

/** 
* override objects for setting build environment specific 
* settings. 
*/ 
"production": { 
    banana : 'no' 
}, 
"testing": { 
    banana : 'yes' 
}, 
"development": { 

}, 

Rõ ràng là tôi đã tự thêm trường chuối. Chúng tôi không được phép triển khai chuối trong sản xuất vì vậy tôi đặt giá trị có hoặc không dựa trên môi trường.

Sau đó, tại xây dựng cho dù tôi làm 'sencha ứng dụng xây dựng thử nghiệm' hoặc 'sencha ứng dụng xây dựng sản xuất' nó sẽ xây dựng trong giá trị chuối tương ứng cho môi trường vào đối tượng Ext.manifest.

Vì vậy, trong việc áp dụng Tôi có thể truy cập vào các giá trị thông qua:

if (Ext.manifest.banana === "yes") 

Tôi đoán bạn có thể sử dụng kỹ thuật tương tự để xác định các lĩnh vực trái cây khác, hoặc có lẽ dữ liệu thậm chí không ăn quả có liên quan.

Tôi có ý tưởng từ tài liệu này: "Khi bạn khởi chạy ứng dụng, bạn sẽ tìm thấy nội dung được xử lý của app.json được tải dưới dạng" Ext.manifest "." http://docs.sencha.com/cmd/5.x/microloader.html

Giống như tôi đã nói Tôi không biết đây có phải là cách tốt nhất để làm điều đó hay không nhưng tôi nghi ngờ nó có thể xảy ra.

+0

Tuyệt, nó đã hoạt động! Cảm ơn rất nhiều vì câu trả lời nhanh và chi tiết của bạn –

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