const firebase = require('firebase');
const devConfig = {
//config here
};
const prodConfig = {
//config here
};
export const firebaseInit = firebase.initializeApp(process.env.NODE_ENV == 'development' ? devConfig : prodConfig);
export const rootRef = firebase.database().ref();
我有这个firebase配置文件。
在我的proc文件中我有:web: NODE_ENV=production node ./src/server/index.js
在我的网站中我有:
plugins: [
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify(process.env.NODE_ENV) || '"development"'
}
}),
在我的package.json中我有:
"start": "node src/server/index.js",
"start:production": "NODE_ENV=production ./node_modules/.bin/webpack && node src/server/index.js",
"start:dev": "NODE_ENV=development ./node_modules/.bin/webpack && node src/server/index.js",
并且在我的heroku应用设置中,我已经离开并将NODE_ENV
设置为production
作为值的键
我在推送代码后部署了主代码。然而,当应用程序启动时,它仍然在我的控制台中以“开发模式”登录。在生产中启动应用程序我缺少什么?我可以在本地做,而不是在heroku
答案 0 :(得分:0)
不确定是否有任何问题可以解决您的问题,但希望它有所帮助。
1)在没有“NODE_ENV = production”的Procfile之前,Heroku能否拿起“开始”脚本?我不使用Procfile,我只依赖启动脚本,所以不确定。
2)NODE_ENV =生产肯定是在&&&在开始:生产脚本调用?在节点脚本之前复制并粘贴它也是值得的,只是为了确定。
3)JSON.stringify将空字符串解析为true,因此最好放置|| JSON.stringify函数中的“development”,如下所示:
'NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development')
4)你在“开发”周围有单引号和双引号,它会创建带双引号的字符串,这个字符串只是单词开发的字符串。