2017-03-15 54 views
0

定義這是我的index.js文件:的ReferenceError:NODE_ENV不與快遞

var express = require('express'); 
var app = express(); 
var compression = require('compression'); 
var path = require('path'); 

app.use(compression()); 
app.set('port', (process.env.PORT || 9000)); 

app.use(express.static(path.join(__dirname, 'dist'))); 
app.use('/public', express.static(path.join(__dirname, '/public'))); 

app.set('views', __dirname + '/'); 
app.set('view engine', 'ejs'); 

app.listen(app.get('port'), function() { 
    console.log('Node app is running on port', app.get('port')); 
}); 

而這些是我對建築NPM腳本和啓動服務器:

"scripts": { 
    "start": "NODE_ENV=production node index.js", 
    "dev": "NODE_ENV=development webpack-dev-server --progress --bail --open", 
    "build": "NODE_ENV=production webpack -p --colors" 
}, 

我不知道如何,但我仍然得到ReferenceError: NODE_ENV is not defined。誰能幫忙?

+2

你在哪裏在JavaScript代碼中使用'NODE_ENV'? (您發佈的代碼在我看來並不是相關的代碼。) – Frxstrem

+0

您使用的操作系統是什麼? – dan

+0

我使用的是OS X另外whan我使用的是webpack服務器,沒有問題...我認爲這不是代碼本身的問題。 – Lukas

回答

0

您需要使用:的

process.env.NODE_ENV 

代替:

NODE_ENV 

當你的錯誤:

ReferenceError: NODE_ENV is not defined 

這意味着你試圖訪問它喜歡它是範圍上的變量,而不是process.env對象的屬性。

+0

哪裏,怎麼樣?在index.js我假設...我也試過這也有同樣的問題:( – Lukas

+0

@Lukas我不知道在哪裏。當然不是在你提供的代碼中,因爲你沒有包含任何東西, NODE_ENV' – rsp

+0

無處不在我必須在webpack配置(使用它來構建應用程序)我使用process.env.NODE_ENV – Lukas

0

它適用於Mac。

你使用什麼操作系統?如果你是Windows中,也許你需要籤cross-env

然後更改您的package.json這樣的:

{ 
    "scripts": { 
    "build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js" 
    } 
}