babel-plugin-transform-inline-environment-variables
ฉันใช้
สิ่งที่ฉันทำคือวางไฟล์การกำหนดค่าภายใน S3 ด้วยสภาพแวดล้อมที่แตกต่างกัน
s3://example-bucket/dev-env.sh
s3://example-bucket/prod-env.sh
s3://example-bucket/stage-env.sh
แต่ละไฟล์ env:
FIRSTENV=FIRSTVALUE
SECONDENV=SECONDVALUE
หลังจากนั้นฉันเพิ่มสคริปต์ใหม่ลงในpackage.json
ที่ทำงานสคริปต์สำหรับการรวมกลุ่ม
if [ "$ENV" == "production" ]
then
eval $(aws s3 cp s3://example-bucket/prod-env.sh - | sed 's/^/export /')
elif [ "$ENV" == "staging" ]
then
eval $(aws s3 cp s3://example-bucket/stage-env.sh - | sed 's/^/export /')
else
eval $(aws s3 cp s3://example-bucket/development-env.sh - | sed 's/^/export /')
fi
react-native start
ภายในแอปของคุณคุณอาจจะมีไฟล์ปรับแต่งที่มี:
const FIRSTENV = process.env['FIRSTENV']
const SECONDENV = process.env['SECONDENV']
ซึ่งจะถูกแทนที่โดย Babel ไปที่:
const FIRSTENV = 'FIRSTVALUE'
const SECONDENV = 'SECONDVALUE'
จำไว้ว่าคุณต้องใช้process.env['STRING']
NOT process.env.STRING
หรือไม่แปลงอย่างถูกต้อง
import {Platform} from 'react-native';
console.log(Platform);