在DigitalOcean Ubuntu服务器上设置NODE_ENV

时间:2018-02-15 12:06:16

标签: node.js ubuntu-16.04 production-environment package.json npm-scripts

我有一个Node.js应用程序。 我的package.json中的构建脚本如下所示:

"build": "webpack --config webpack.prod.js && set NODE_ENV=production&& npm run express-server"

当我在我的计算机上本地运行此脚本时,我可以访问process.env.NODE_ENV并且它确实在“生产”中

但是当我在托管在数字海洋上的Ubuntu服务器上做同样的事情时,process.env.NODE_ENV是'undefined'。

如何在Ubuntu服务器上的npm脚本中设置NODE_ENV?

1 个答案:

答案 0 :(得分:0)

修改

  1. 根据这个answer,它说:

      

    在UBUNTU中使用:

         

    $ export NODE_ENV=test

    注意,使用export代替set

  2. 原始回答:

    1. 首先尝试将您的build脚本更改为:

      "build": "webpack --config webpack.prod.js && NODE_ENV=\"production\" npm run express-server"
      

      注意set关键字已被省略,转义双引号已被\"production\"包裹,&&运算符已被删除。

    2. 如果还失败,请结帐cross-env。它的文档说明:

        

      当您使用NODE_ENV=production设置环境变量时,大多数Windows命令提示都会阻塞。 (例外情况是Windows上的Bash,它使用本机Bash。)同样,Windows和POSIX命令如何利用环境变量也有所不同。使用POSIX,您可以使用:$ENV_VAR,在Windows上使用%ENV_VAR%

      所以也许尝试使用cross-env并将您的build脚本更改为以下内容:

      "build": "webpack --config webpack.prod.js && cross-env NODE_ENV=\"production\" npm run express-server"