如何在Windows上设置NODE_ENV = production?

在Ubuntu中,这非常简单;我可以使用以下方式运行该应用程序:

$ NODE_ENV=production node myapp/app.js

但是,这在Windows上不起作用。是否可以在其中配置属性的配置文件?

西里飞云2020/03/18 16:53:49

如果NODE_ENV或任何其他环境变量未提供正确的值,请重新启动VS代码。重新启动后应该可以使用。

斯丁蛋蛋宝儿2020/03/18 16:53:49

我使用npm脚本运行不含“ &&”的gulp任务

NODE_ENV = testcases npm运行seed-db

村村Mandy2020/03/18 16:53:49

这不会设置变量,但是在许多情况下很有用。我不建议将其用于生产,但是如果您正在使用npm,那应该没问题。

npm install --production
小胖Gil2020/03/18 16:53:49

如果您使用的是GITBASH终端 "set NODE_ENV=production" 不起作用,您可以输入“ export”NODE_ENV=production"

Green小小2020/03/18 16:53:49

Powershell类型中的第一个

$env:NODE_ENV="production"

然后输入

node fileName.js

它将完美显示所有输出。

Tom卡卡西村村2020/03/18 16:53:49

要在PowerShell中运行您的应用程序(因为&&不允许这样做):

($env:NODE_ENV="production") -and (node myapp/app.js)

请注意,服务器正在执行的操作的文本输出被抑制,因此我不确定这是否可以解决。(扩展@jsalonen的答案。)

十三村村蛋蛋2020/03/18 16:53:48

这是非命令行方法:

在Windows 7或10中,在开始菜单搜索框中键入环境,然后选择编辑系统环境变量。

或者,导航到控制面板\系统和安全性\系统,然后单击高级系统设置。

这将打开“系统属性”对话框,并选择“高级”选项卡。在底部,您将看到一个环境变量...按钮。点击这个。

系统对话框

将打开“环境变量”对话框。

环境变量对话框

在底部的“系统变量”下,选择“新建...”。这将打开“新系统变量”对话框。

在此处输入图片说明

输入变量名称和值,然后单击确定。

您将需要关闭所有cmd提示符并重新启动服务器,以使新变量可用于process.env。如果仍然没有显示,请重新启动计算机。

卡卡西神奇2020/03/18 16:53:48

只是为了澄清一下,对于其他可能正在拔头发的人来说……

如果您在Windows上使用git bashset node_env=production&& node whatever.js 则似乎无法正常工作而是使用本机cmd。然后,set node_env=production&& node whatever.js按预期使用作品。

我的用例:

我在Windows上开发,因为我的工作流程是很多快,但我需要确保我的应用程序的开发专用的中间件并没有在生产环境中射击。

StafanL2020/03/18 16:53:48

我写了一个模块win-node-env,您可以像在* nix中一样运行命令。

NODE_ENV=production node myapp/app.js

它通过创建一个NODE_ENV.cmd设置NODE_ENV环境变量并使用其余命令及其arg生成子进程的子进程来工作。

只需安装(全局),然后运行您的npm脚本命令,它将自动使它们工作。

npm install -g win-node-env
神奇Sam理查德2020/03/18 16:53:48

如果可以在Windows上启动Node.js的调用所在的行中设置参数,那将是理想的选择。仔细查看以下内容,并严格按照说明运行它:

您有以下两种选择:

  1. 在命令行中:

    set NODE_ENV=production&&npm start
    

    要么

    set NODE_ENV=production&&node index.js
    
  2. 在Windows上运行的技巧是您需要删除“ &&”之前和之后的空格。使用下面的start_windows(请参见下文)配置了package.json文件。然后在命令行中运行“ npm run start_windows”。

    //package.json
    
    "scripts": {
      "start": "node index.js"
      "start_windows": "set NODE_ENV=production&&node index.js"
    }
    
小胖Tony2020/03/18 16:53:48

在PowerShell中:

$env:NODE_ENV="production"
Davaid泡芙2020/03/18 16:53:48

我刚刚找到了一个不错的Node.js程序包,它可以使用跨平台的独特语法对定义环境变量有很大帮助。

https://www.npmjs.com/package/cross-env

它允许您编写如下内容:

cross-env NODE_ENV=production my-command

哪个很方便!不再有Windows或Unix专用命令!

老丝Itachi2020/03/18 16:53:48

Windows的当前版本使用Powershell作为默认外壳,因此请使用:

$env:NODE_ENV="production"

根据下面的@jsalonen的答案。如果您使用的是CMD(不再维护),请使用

set NODE_ENV=production

这应该在您打算运行Node.js应用程序的命令提示符下执行。

上一行将在执行命令的命令提示符处设置环境变量NODE_ENV。

要全局设置环境变量,以使它们仅在单个命令提示符后仍然存在,您可以在“控制面板”的“系统”中找到该工具(或通过在“开始”菜单的搜索框中键入“ environment”)。