![translation](https://cdn.durumis.com/common/trans.png)
Đây là bài viết được dịch bởi AI.
Chọn ngôn ngữ
Văn bản được tóm tắt bởi AI durumis
- Trong Next.js, .env được thiết lập tại thời điểm xây dựng, nhưng đôi khi cần phải thiết lập biến môi trường theo môi trường hoạt động (local, dev, qa, prod) sau khi xây dựng.
- Người dùng Windows không thể sử dụng các script dựa trên Unix truyền thống, vì vậy cần cài đặt cross-env để tạo các script hoạt động trên cả Windows và Unix.
- Áp dụng cross-env vào các lệnh start và dev để thiết lập biến môi trường và sắp xếp lại script cho gọn gàng, tăng khả năng đọc.
Trong Next.js, .env được hardcode vào trong quá trình build.
Tuy nhiên, đôi khi có nhiều nhu cầu cần thiết lập env khi chạy image đã build, không phải trong quá trình build.
Thông thường, chúng ta xử lý các môi trường như local, dev, qa, prod.
Vậy làm cách nào để đạt được điều đó?
Hầu hết các ngữ cảnh đều tương tự như bài viết bên dưới.
Tuy nhiên, bài viết trên lại loại trừ Windows.
Có thể thấy rằng nó sử dụng cú pháp Unix trong script của package.json.
Điều này có nghĩa là người dùng Windows trong sạch, thanh lịch, đầy lòng vị tha và không sử dụng Unix bẩn thỉu sẽ không thể sử dụng script này.
Do đó, người dùng Windows thanh lịch và đầy lòng vị tha cần phải quan tâm đến người dùng Unix và thay thế script đó bằng một script hoạt động tốt trên cả hai hệ điều hành.
Giải pháp rất đơn giản.
Chỉ cần chèn một script thực hiện tương tự cú pháp đó.
Cài đặt cross-env bằng lệnh như trên.
Và sửa lại lệnh start đã đề cập ở trên như sau để giải quyết vấn đề.
Tuy nhiên, script quá dài và khó nhìn, đồng thời cần phải gắn thêm vào cả lệnh dev.
{
"dev": "npm run _env:-local && next dev",
"dev:dev": "npm run _env:dev && next dev",
"start": "npm run _env:-local && next start",
"_env:-local": "cross-env-shell node ./utils/cli.js next-env -e $APP_ENV",
"_env:dev": "node ./utils/cli.js next-env -e dev"
Vì vậy, tôi đã sắp xếp lại như trên.