在Ubuntu中这很简单;我可以运行应用程序使用:

$ NODE_ENV=production node myapp/app.js

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


当前回答

如果您正在使用带有NTVS的Visual Studio,您可以在项目属性页面上设置环境变量:

正如你所看到的,Configuration和Platform下拉菜单被禁用了(我还没有深入研究为什么会这样),但是如果你编辑你的.njsproj文件,如下所示:

  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <Environment>NODE_ENV=development</Environment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>true</DebugSymbols>
    <Environment>NODE_ENV=production</Environment>
  </PropertyGroup>

然后,“调试/发布”下拉菜单将控制在启动Node.js之前如何设置变量。

其他回答

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

NODE_ENV=production node myapp/app.js

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

只需安装它(全局),并运行你的npm脚本命令,它应该会自动使它们工作。

npm install -g win-node-env

我使用npm脚本运行一个没有“&&”的gulp任务

NODE_ENV=testcases运行seed-db

如果你能在调用启动Windows上的Node.js时在同一行设置参数,那就太理想了。仔细看下面的内容,并按照上面说的那样运行:

你有两个选择:

在命令行: set NODE_ENV=production&&npm start 或 set NODE_ENV=production&&node index.js 在Windows上工作的技巧是你需要删除“&&”前后的空白。配置您的包。Json文件与start_windows(见下文)下面。然后在命令行执行“npm Run start_windows”。 / / package.json "脚本":{ "start": "node index.js" "start_windows": "set NODE_ENV=production&&node index.js" }

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

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

请注意,服务器正在做的事情的文本输出被抑制了,我不确定这是否可以修复。(扩展@jsalonen的回答。)

如果你使用vs code终端,你必须使用这个命令

$env:NODE_ENV="production"