我正在尝试将 node.js 应用程序部署到与 webpack 捆绑的 heroku。由于heroku日志,我面临以下错误:
错误 R10(启动超时)-> Web 进程未能在启动后 60 秒内绑定到 $PORT
应用程序不使用固定端口进行侦听。
app.listen(process.env.PORT || 3000, () => {
log(`App is running: http://localhost:${process.env.PORT || 3000}`, 'info');
});
我也尝试使用'0.0.0.0':
app.listen(process.env.PORT || 3000, '0.0.0.0' () => {
log(`App is running: http://localhost:${process.env.PORT || 3000}`, 'info');
});
我注意到,如果我将 webpack.definePlugin 与解析的 dotenv 一起使用,我会遇到这个问题,但如果我不使用它,一切都很好。
我有以下用于 webpack.definePlugin 的 .env 文件:
const fs = require('fs');
const paths = require('./paths');
const defaultVars = {
NODE_ENV: process.env.NODE_ENV || 'development'
};
const stringifyEnv = (obj) => ({
'process.env': Object.keys(obj).reduce((env, key) => {
env[key] = JSON.stringify(obj[key]);
return env;
}, {})
});
module.exports = () => {
if (fs.existsSync(paths.dotenv)) {
const dotenv = require('dotenv').config();
const env = { ...dotenv.parsed, ...defaultVars };
return stringifyEnv(env);
}
return stringifyEnv(defaultVars);
};
试图在 devDependencies 中列出 dotenv。
你能告诉我有什么问题吗?