【问题标题】:set NODE_ENV on DigitalOcean Ubuntu server在 DigitalOcean Ubuntu 服务器上设置 NODE_ENV
【发布时间】:2018-07-26 04:32:37
【问题描述】:

我有一个 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 是“未定义的”。

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

【问题讨论】:

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


    【解决方案1】:

    编辑:

    1. 根据这个answer 它说:

      在 UBUNTU 中使用:

      $ export NODE_ENV=test

      注意,使用export 而不是set


    原答案:

    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"
      

    【讨论】:

      猜你喜欢
      • 2021-08-05
      • 2021-09-06
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 2015-04-27
      相关资源
      最近更新 更多