[英]environment variables in heroku
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配置文件。
在我的procfile中,我有: web: NODE_ENV=production node ./src/server/index.js
在我的webpack中,我有:
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
设置为key,将production
为value
在将代码向上推后,我已经部署了主代码。 但是,当应用启动时,它仍然以“开发模式”登录到我的控制台。 我缺少在生产中启动该应用程序的原因? 我可以在本地做到这一点,而不是在heroku上
不知道这是否能解决您的问题,但希望对您有所帮助。
1)Heroku可以在Procfile中没有“ NODE_ENV = production”的代码前拾取“ start”脚本吗? 我不使用Procfile,我只是依靠启动脚本,所以不确定。
2)在start:production脚本调用&&之后,NODE_ENV = production是否肯定进行? 可以肯定,值得将其复制并粘贴到节点脚本之前。
3)JSON.stringify会将一个空字符串解析为true,因此最好将||放入 JSON.stringify函数中的“开发”,如下所示:
'NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development')
4)您在'“ development”'周围有单引号和双引号,这将创建带有双引号的字符串,该字符串与只是单词development的字符串不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.