首页 > 解决方案 > Heroku应用程序NODE_ENV复制本地.env文件?

问题描述

在将我的 react 应用程序 github repo 部署到 Heroku 时,我遇到了NODE_ENVvalue always ='dev' 的问题,这与我的本地版本相同。自然地,我假设我不小心上传了我的 .env 文件,所以我检查了我的 repo,但该文件不存在。所以我使用了 Heroku 的控制台,并且 did console.log(process.env.NODE_ENV),它返回了“生产”,然后以某种方式返回了第二个值“未定义”。在 Heroku 的构建日志中,它声称NODE_ENV=production. 我还尝试package.json在构建过程的各个步骤中将值设置为生产。使用 Procfile 似乎也没有做任何事情。在我的后端,如果我在生产中执行 NODE_ENV 的 console.log,它会显示“dev”。我还尝试将本地 NODE_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));
});

这是我的 package.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"
    ]
  }
}

标签: javascriptnode.jsreactjsheroku

解决方案


推荐阅读