javascript - Heroku应用程序NODE_ENV复制本地.env文件?
问题描述
在将我的 react 应用程序 github repo 部署到 Heroku 时,我遇到了NODE_ENV
value 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"
]
}
}
解决方案
推荐阅读
- javascript - 我想通过 google map api 检测用户位置
- java - Android Studio - 如何调用引用可绘制对象的方法?
- python - 如何检测龟蟒中两个物体之间的碰撞?
- html - 使用 css 样式输入单选
- laravel - Laravel + Tailwindcss 1.8.7:如何安装
- vue.js - Fancybox 3 - 从内联数据属性中指定按钮数组?
- c# - 如何将 SQL 表中的行数显示到 HTML 容器
- r - 在 Rstudio 中选择具有日期和时间值的特定行
- r - 如何更改 R 中 fviz_cos2 绘图的标签大小?
- python - 没有“As”子句的变量声明;假定的对象类型