ReferenceError:未使用Express定义NODE_ENV

时间:2017-03-15 16:49:44

标签: javascript node.js express npm

这是我的index.js文件:

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 个答案:

答案 0 :(得分:0)

您需要使用:

process.env.NODE_ENV

而不是:

NODE_ENV

当您收到错误时:

ReferenceError: NODE_ENV is not defined

这意味着您尝试访问它,就像它是范围中的变量而不是process.env对象上的属性一样。

答案 1 :(得分:0)

适用于Mac。

您使用的操作系统是什么?如果您是Windows,可能需要结帐cross-env

然后像这样更改你的package.json:

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