Приложение Heroku NODE_ENV копирует локальный файл .env? - PullRequest
0 голосов
/ 29 апреля 2020

При развертывании моего репозитория github repact app на Heroku у меня возникает проблема с NODE_ENV value всегда = 'dev', которая совпадает с моей локальной версией. Естественно, я предположил, что случайно загрузил свой файл .env, поэтому я проверил репо, но файла там не было. Поэтому я использовал консоль Heroku и сделал console.log(process.env.NODE_ENV), который возвратил «production», а затем каким-то образом возвратил второе значение «undefined». В журнале сборки для Heroku он утверждает NODE_ENV=production. Я также пытался установить значение для продукции в package.json на разных этапах процесса сборки. Использование Procfile, похоже, тоже ничего не делает. В моем бэкэнде, если я делаю console.log из NODE_ENV в производстве, он говорит 'dev'. Я также попытался изменить локальный NODE_ENV на случайную строку, и производственная сборка также отразила это изменение. Я не уверен, что именно я делаю не так.

Вот блок кода, который я проверяю env:

router.route('/update/:id').post((req, res) => {
    console.log(process.env.NODE_ENV);
    Stat.findById(process.env.NODE_ENV === 'production' ? req.params.id : req.params.id+"TEST")
        .then(stat => {
            let masterList = stat.itemList;
            let filterList = new Promise((resolve, reject) => {
                masterList.forEach((item, index) => {
                    if (req.body.itemList[index].count > 0) {
                        item.count += req.body.itemList[index].count;
                        if (req.body.itemList[index].selected) {
                            item.wanted += req.body.itemList[index].count;
                        }
                        else {
                            item.unwanted += req.body.itemList[index].count;
                        }
                    }
                })
                resolve();
            });
            filterList.then(() => {
                stat.total += req.body.total;
                stat.itemList = masterList;
                stat.markModified('itemList');
                stat.save()
                    .then(() => res.json(stat))
                    .catch(err => res.status(400).json('Error: ' + err));
            })
        })
        .catch(err => res.status(400).json('Error: ' + err));
});

Вот мой пакет. json:

{
  "name": "react-app",
  "version": "0.1.0",
  "private": true,
  "homepage": ".",
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.5.0",
    "@testing-library/user-event": "^7.2.1",
    "axios": "^0.19.2",
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "mongoose": "^5.9.7",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-scripts": "3.4.1"
  },
  "scripts": {
    "start": "node backend/server.js && npm run start-client.js",
    "start-dev": "react-scripts start",
    "build": "react-scripts build",
    "server": "node backend/server.js",
    "heroku-postbuild": "npm install && npm run build"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version",
      "last 10 edge version"
    ]
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...