NextJS - ตั้งค่าตัวแปรสภาพแวดล้อมแบบไดนามิกเมื่อเริ่มต้นแอปพลิเคชัน

ในกระบวนการนำไปใช้งานของเรา เราได้สร้างอาคารหลังเดียวและผ่านขั้นตอนต่างๆ (การบูรณาการ การจัดเตรียม และการผลิต) ในแต่ละสภาพแวดล้อม เรามีความแตกต่างด้านสิ่งแวดล้อมที่แตกต่างกัน

ปัญหาคือเมื่อเราเริ่มต้นเซิร์ฟเวอร์ มันจะอ้างอิงถึงตัวแปรสภาพแวดล้อมบนเซิร์ฟเวอร์เท่านั้น แต่ในไคลเอนต์ ไฟล์ process.env นั้นว่างเปล่า

สแต็ก: "ถัดไป": "5.0.0" "babel-plugin-inline-dotenv": "1.1.1",

สำหรับการโหลดไฟล์ .env จะใช้ "inline-dotenv"


person AleG    schedule 18.05.2018    source แหล่งที่มา
comment
จาก [email protected] คุณสามารถใช้ github.com/zeit/   -  person lependu    schedule 18.06.2018


คำตอบ (1)


คุณสามารถใช้ publicRuntimeConfig ในไฟล์ next.config.js ของคุณได้

ตัวอย่าง:

// next.config.js
module.exports = {
  serverRuntimeConfig: { // Will only be available on the server side
    mySecret: 'secret'
  },
  publicRuntimeConfig: { // Will be available on both server and client
    staticFolder: '/static',
    mySecret: process.env.MY_SECRET // Pass through env variables
  }
}

โปรดทราบว่าตอนนี้ค่าของ publicRuntimeConfig.mySecret ได้รับการดึงมาจากตัวแปรสภาพแวดล้อม ตอนนี้คุณสามารถอ่านค่านั้นได้โดยการนำเข้าใน next/config

ตัวอย่าง:

import getConfig from 'next/config';

const { publicRuntimeConfig } = getConfig();
console.log(publicRuntimeConfig.mySecret);

แหล่งที่มา: next.js เอกสาร

person mohsenari    schedule 21.09.2018