Skip to content

Commit

Permalink
1, runtime env support
Browse files Browse the repository at this point in the history
  • Loading branch information
chenxiaolei committed Jul 23, 2019
1 parent c1bbaf7 commit d2652ab
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 3 deletions.
29 changes: 29 additions & 0 deletions env.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/bash

# Recreate config file
rm -rf ./env-config.js
touch ./env-config.js

# Add assignment
echo "window._env_ = {" >> ./env-config.js

# Read each line in .env file
# Each line represents key=value pairs
while read -r line || [[ -n "$line" ]];
do
# Split env variables by character `=`
if printf '%s\n' "$line" | grep -q -e '='; then
varname=$(printf '%s\n' "$line" | sed -e 's/=.*//')
varvalue=$(printf '%s\n' "$line" | sed -e 's/^[^=]*=//')
fi

# Read value of current variable if exists as Environment variable
value=$(printf '%s\n' "${!varname}")
# Otherwise use value from .env file
[[ -z $value ]] && value=${varvalue}

# Append configuration property to JS file
echo " $varname: \"$value\"," >> ./env-config.js
done < .env

echo "}" >> ./env-config.js
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "zlmediakit_nvr_ui",
"version": "v1.0.0",
"version": "v1.0.1",
"private": true,
"dependencies": {
"@emotion/core": "~10.0.14",
Expand Down Expand Up @@ -67,6 +67,7 @@
"redux-logger": "~3.0.6"
},
"scripts": {
"dev": "chmod +x ./env.sh && ./env.sh && mv env-config.js ./public/ && react-app-rewired start",
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"postbuild": "tar -cvzf zlmediakit_nvr_ui.$npm_package_version.tar.gz -C ./build ."
Expand Down
3 changes: 3 additions & 0 deletions public/env-config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
window._env_ = {
REACT_APP_API_HOST: "localhost:8011",
}
1 change: 1 addition & 0 deletions public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>ZLMediaNVR</title>
<script src="%PUBLIC_URL%/env-config.js"></script>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
Expand Down
3 changes: 1 addition & 2 deletions src/config/apiconfig.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

var apiDomin = `${location.protocol}//${process.env.REACT_APP_API_HOST}`;
var apiDomin = `${location.protocol}//${window._env_.REACT_APP_API_HOST}`;

const APIV1 = apiDomin + '/index/api';

Expand Down

0 comments on commit d2652ab

Please sign in to comment.