在Ubuntu中它非常简单; 我可以运行应用程序:
$ NODE_ENV=production node myapp/app.js
Run Code Online (Sandbox Code Playgroud)
但是这不适用于Windows.是否有配置文件,我可以设置属性?
Jan*_*nen 445
当前版本的Windows使用Powershell作为默认shell,因此使用:
$env:NODE_ENV="production"
Run Code Online (Sandbox Code Playgroud)
Per @ jsalonen的回答如下.如果您使用的是CMD(不再维护),请使用
set NODE_ENV=production
Run Code Online (Sandbox Code Playgroud)
这应该在您打算运行Node.js应用程序的命令提示符中执行.
上面的行将为执行命令的命令提示符设置环境变量NODE_ENV.
要全局设置环境变量,使它们超出单个命令提示符,您可以从"控制面板"中的"系统"中找到该工具(或者在"开始"菜单的"搜索"框中键入"environment").
MoO*_*oOx 199
我刚刚发现了一个很好的Node.js包,可以使用独特的语法跨平台来帮助定义环境变量.
https://www.npmjs.com/package/cross-env
它允许你写这样的东西:
cross-env NODE_ENV=production my-command
Run Code Online (Sandbox Code Playgroud)
这很方便!没有Windows或Unix特定的命令!
jsa*_*nen 161
在PowerShell中:
$env:NODE_ENV="production"
Run Code Online (Sandbox Code Playgroud)
Ale*_*lls 85
如果您可以在与Windows上启动Node.js的调用相同的行上设置参数,那将是理想的选择.请仔细查看以下内容,并按照说明运行:
你有这两个选择:
在命令行:
set NODE_ENV=production&&npm start
Run Code Online (Sandbox Code Playgroud)
要么
set NODE_ENV=production&&node index.js
Run Code Online (Sandbox Code Playgroud)在命令行运行"npm run start_windows",其package.json文件配置如下
//package.json
"scripts": {
"start": "node index.js"
"start_windows": "set NODE_ENV=production&&node index.js"
}
Run Code Online (Sandbox Code Playgroud)它在Windows上工作的技巧是你需要删除"&&"之前和之后的空格.
小智 28
您可以使用
npm run env NODE_ENV=production
Run Code Online (Sandbox Code Playgroud)
这可能是最好的方法,因为它兼容Windows和Unix.
env脚本是一个特殊的内置命令,可用于列出在运行时脚本可用的环境变量.如果在包中定义了"env"命令,它将优先于内置命令.
pau*_*aul 13
如果将Visual Studio与NTVS一起使用,则可以在项目属性页面上设置环境变量:
正如您所看到的,配置和平台下拉列表已禁用(我没有看到为什么会这样做太多),但是如果您.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>
Run Code Online (Sandbox Code Playgroud)
然后,'Debug/Release'下拉菜单将控制在启动Node.js之前如何设置变量.
lag*_*lex 11
我写了一个模块win-node-env,你可以像在*nix中一样运行命令.
NODE_ENV=production node myapp/app.js
Run Code Online (Sandbox Code Playgroud)
它的工作原理是创建一个NODE_ENV.cmd设置NODE_ENV环境变量并使用命令的其余部分及其args生成子进程.
只需安装它(全局),并运行你的npm脚本命令,它应该自动使它们工作.
npm install -g win-node-env
Run Code Online (Sandbox Code Playgroud)
kuk*_*kab 10
如果您使用的是 vs code 终端,则必须使用此命令
$env:NODE_ENV="production"
Run Code Online (Sandbox Code Playgroud)
我在Visual Studio 2013中使用64位Windows 7上的Node.js的经验是您需要使用的
setx NODE_ENV development
Run Code Online (Sandbox Code Playgroud)
从一个cmd窗口.并且您必须重新启动Visual Studio才能识别新值.
设置语法仅持续设置它的cmd窗口的持续时间.
在Node.js中进行简单测试:
console.log('process.env.NODE_ENV = ' + process.env.NODE_ENV);
Run Code Online (Sandbox Code Playgroud)
使用set时返回'undefined',如果使用setx并重新启动Visual Studio,它将返回'development'.
在 PowerShell 中运行您的应用程序(因为&&不允许):
($env:NODE_ENV="production") -and (node myapp/app.js)
Run Code Online (Sandbox Code Playgroud)
请注意,服务器正在执行的操作的文本输出被抑制,我不确定这是否可以修复。(扩展@jsalonen 的回答。)
首创的 powershell 类型
$env:NODE_ENV="production"
Run Code Online (Sandbox Code Playgroud)
然后输入
node fileName.js
Run Code Online (Sandbox Code Playgroud)
它将完美地显示所有输出。
这是非命令行方法:
在Windows 7或10中,在开始菜单搜索框中键入environment,然后选择编辑系统环境变量.
或者,导航到"控制面板\系统和安全\系统",然后单击"高级系统设置"
这应打开"系统属性"对话框,并选中"高级"选项卡.在底部,您将看到Environment Variables ...按钮.点击这个.
环境变量对话框将打开.
在底部的System variables下,选择New ...这将打开New System Variable对话框.
输入变量名称和值,然后单击"确定".
您需要关闭所有cmd提示并重新启动服务器,以使新变量可用于process.env.如果仍未显示,请重新启动计算机.
小智 6
只是为了澄清,并为其他任何可能拔毛的人......
如果你在Windows上使用git bash,set node_env=production&& node whatever.js 似乎没有用.相反,使用本机cmd.然后,set node_env=production&& node whatever.js按预期使用工作.
我的用例:
我在Windows上开发,因为我的工作流程是很多快,但我需要确保我的应用程序的具体开发的中间件并没有在生产环境中射击.
| 归档时间: |
|
| 查看次数: |
310199 次 |
| 最近记录: |