2017-03-15 30 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" 
    } 
}