[英]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.