![translation](https://cdn.durumis.com/common/trans.png)
นี่คือโพสต์ที่แปลด้วย AI
[Next.js] การฉีดรหัสรันไทม์ env
- ภาษาที่เขียน: ภาษาเกาหลี
- •
-
ประเทศอ้างอิง: ทุกประเทศ
- •
- เทคโนโลยีสารสนเทศ
เลือกภาษา
สรุปโดย AI ของ durumis
- ใน Next.js .env จะถูกตั้งค่าในขณะที่สร้าง แต่บางครั้งอาจจำเป็นต้องตั้งค่าตัวแปรสภาพแวดล้อม หลังจากการสร้างสำหรับสภาพแวดล้อมการทำงาน (local, dev, qa, prod)
- ผู้ใช้ Windows ไม่สามารถใช้สคริปต์แบบยูนิกซ์แบบดั้งเดิมได้ ดังนั้นจึงต้องติดตั้ง cross-env เพื่อเขียนสคริปต์ ที่ทำงานได้ทั้งบน Windows และยูนิกซ์
- ใช้ cross-env ในคำสั่ง start และ dev เพื่อตั้งค่าตัวแปรสภาพแวดล้อมและจัดระเบียบสคริปต์ให้เรียบง่าย เพื่อความชัดเจน
Next.js ใน .env จะถูกฮาร์ดโค้ดในขณะรันไทม์
อย่างไรก็ตาม บางครั้งอาจมีเหตุผลมากมายที่คุณต้องการตั้งค่า env ในขณะที่เรียกใช้รูปภาพที่สร้างขึ้น ไม่ใช่ในขณะรันไทม์
โดยปกติแล้ว จะเป็น local, dev, qa, prod
แล้วเราจะทำอย่างไร?
บริบทส่วนใหญ่จะเหมือนกับบทความด้านล่าง
อย่างไรก็ตาม บทความข้างต้นไม่รวม Windows
เราสามารถเห็นได้จากการฝังไวยากรณ์ของยูนิกซ์ลงในสคริปต์ของ package.json
ซึ่งหมายความว่าผู้ใช้ Windows ที่ซื่อสัตย์ ใจบุญ ใจดี และไม่ใช้ยูนิกซ์สกปรก ไม่สามารถใช้สคริปต์นี้ได้
ดังนั้น ผู้ใช้ Windows ที่ซื่อสัตย์ ใจบุญ ใจดี จึงต้องแสดงความเห็นอกเห็นใจต่อผู้ใช้ยูนิกซ์ โดยใส่สคริปต์ที่ทำงานอย่างถูกต้องในทั้งสองระบบปฏิบัติการแทน
วิธีแก้ไขนั้นง่ายมาก
เพียงแค่ใส่สคริปต์ที่ทำหน้าที่เหมือนไวยากรณ์นั้น
ติดตั้ง cross-env ด้วยคำสั่งข้างต้น
และแก้ไขคำสั่ง start ที่กล่าวถึงข้างต้นเป็นดังนี้
แต่สคริปต์นั้นยาวเกินไปและอ่านยาก ดังนั้นจึงต้องใส่ลงในคำสั่ง 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"
ดังนั้น ฉันจึงจัดเรียงมันตามที่แสดงข้างต้น