Я хочу, чтобы ключи и секреты не отображались конечному пользователю в окончательной сборке приложения React. Я нашел способы, предлагающие хранить секреты в файле переменных среды в Docker. Ниже приведен код, который пока не работает. REACT_APP_SOME_API
недоступен в React, и я не уверен, что при использовании этого метода секреты будут видны в окончательной сборке, которая мне не нужна.
Package.json в React: -
"scripts": {
"start": "rm -rf dist && webpack-dev-server --mode development --open --hot --port 8090",
"docker": "rm -rf dist && webpack --mode production && make docker-run",
"docker-push": "rm -rf dist && webpack --mode production && make docker-push --"
},
Makefile: -
docker:
docker build -t app .
docker-run: docker
docker run -it --env-file ./config.env -p "80:80" app
docker-push: TAG ?= latest
docker-push: docker
docker tag $(NAME) $(DOCKER_REPO):$(TAG)
docker push $(DOCKER_REPO):$(TAG)
config.env: -
REACT_APP_SOME_API=This-should-be-accessible-in-react-app
App.js в приложении React: -
return(
<>{process.env.REACT_APP_SOME_API}< />//This outputs undefined if console.log
);