如何制作Windows 10一键安装脚本实现Node.js应用自动部署与开机自启
Windows 一键部署Node应用PowerShell脚本实现方案
你需要的所有操作都可以通过自定义PowerShell脚本实现一键运行完成,无需依赖Windows系统外的额外工具。
前置说明
脚本默认会自动申请管理员权限、配置环境变量、处理所有安装流程,你只需提前修改脚本内的自定义配置项即可使用。
完整一键部署脚本
将以下内容复制到文本编辑器,修改开头的配置参数后保存为后缀为.ps1的文件即可:
# ---------- 请修改以下自定义配置 ---------- $nodeVersion = "18.17.1" # 所需的Node.js版本号 $nodeInstallerUrl = "<你的Node.js安装包下载地址>" # Node.js对应版本的x64 msi安装包下载地址 $appPackageUrl = "<你的已编译Node应用压缩包下载地址>" # 应用zip压缩包下载地址 $appInstallDir = "C:\Program Files\MyNodeApp" # 应用本地安装目录 $appEntry = "app.js" # 应用入口文件名 $appServiceName = "MyNodeAppService" # 注册的Windows服务名称 # ---------- 配置结束 ---------- # 检查管理员权限,不足则自动提权 $currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent()) if (-not $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs exit } # 1. 创建应用安装目录 New-Item -ItemType Directory -Path $appInstallDir -Force | Out-Null Write-Host "已创建应用安装目录:$appInstallDir" # 2. 下载并静默安装Node.js $nodeMsiPath = "$env:TEMP\node-$nodeVersion-installer.msi" Write-Host "正在下载Node.js安装包..." Invoke-WebRequest -Uri $nodeInstallerUrl -OutFile $nodeMsiPath -UseBasicParsing Write-Host "正在安装Node.js..." Start-Process msiexec.exe -ArgumentList "/i `"$nodeMsiPath`" /quiet /norestart" -Wait # 刷新系统环境变量,让Node、npm命令立即生效 $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User") Write-Host "Node.js v$nodeVersion 安装完成" # 3. 全局安装pm2及Windows服务适配组件 Write-Host "正在安装pm2运行管理工具..." npm install -g pm2 pm2-windows-service Write-Host "pm2安装完成" # 4. 下载并解压应用包 $appZipPath = "$env:TEMP\$appServiceName.zip" Write-Host "正在下载应用安装包..." Invoke-WebRequest -Uri $appPackageUrl -OutFile $appZipPath -UseBasicParsing Write-Host "正在解压应用安装包..." Expand-Archive -Path $appZipPath -DestinationPath $appInstallDir -Force Write-Host "应用解压完成" # 5. 启动应用并配置pm2托管 Write-Host "正在启动应用..." Set-Location $appInstallDir pm2 start $appEntry --name $appServiceName pm2 save Write-Host "应用启动成功" # 6. 配置为Windows服务实现开机自启 Write-Host "正在配置Windows开机自启服务..." pm2-service-install -unattended pm2 save Write-Host "开机自启服务配置完成" Write-Host "===== 所有操作已全部完成 =====" pause
使用方法
- 完成配置修改后,右键点击保存好的
.ps1文件,选择「使用PowerShell运行」即可 - 全程无需手动操作,等待脚本运行结束提示完成即可
注意事项
- 如果运行脚本提示执行策略限制,可先以管理员身份打开PowerShell,执行
Set-ExecutionPolicy RemoteSigned,输入Y确认后再运行脚本 - 脚本运行全程需要保持网络连接,所有依赖包和应用都会自动下载
- 部署完成后可以执行
pm2 list查看应用运行状态,也可以在Windows服务列表中找到对应服务确认开机自启配置是否生效
内容的提问来源于stack exchange,提问作者Jake He
相关产品推荐
相关产品推荐

