Khi tạo mới ứng dụng Angular bằng Angular CLI, mặc định Angular CLI sẽ tạo ra thư mục src/environments với 2 file là environment.ts và environment.prod.ts cho phép ta đa cấu hình environment cho ứng dụng, cả 2 file này được khai báo trong angular.json

Khi build ứng dụng cho một environment , Angular CLI sẽ thay thế file environment.ts bằng content của một file environment của môi trường đó, ví dụ: environment.qa.ts, environment.prod.ts.

Nhìn chung, cơ chế này khá tốt, nhưng config này là file typescript, và nó không thể chỉnh sửa bởi người triển khai, cũng như phải recompile lại ứng dụng khi có nhu cầu chỉnh sửa cấu hình. Bài viết này sẽ hướng dẫn cấu hình ứng dụng Angular bằng file json để khác phục điều đó.

Định nghĩa interface cho cấu hình

Tạo file config json

Tạo service đọc file config

Service này sẽ đọc đúng file config theo môi trường.

Tải file config trước khi ứng dụng khởi tạo

Angular có một token tên là APP_INITIALIZER cho phép thưc thi code khi ứng dụng đã khởi tạo. Trong app module, tao sẽ sử dụng nó để gọi method loadConfig() của service. Vì method trả về là một promise, Angular sẽ trì hoãn việc khởi tạo cho đến khi promise được resolved.

Bây giờ, để có thể lấy thống tin config, ta chỉ cần inject service AppConfig và sử dụng các thuộc tính của nó.

 

 

Phạm Hoài Thương

Software Engineer

About the Author

Creating an application is easy, but creating a Great, Production-Ready Application is a whole different story. Một thợ code đang mong muốn trở thành một kỹ sư thực thụ. Đây là nơi tôi chia sẽ những kiến thức tôi đọc qua hoặc trải nghiệm cảm thấy hay ho.

View Articles