簡體   English   中英

heroku中的環境變量

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM