翼度科技»论坛 编程开发 JavaScript 查看内容

nodejs文件实现打包成exe, 并设置开机自启动的方法详解(没有黑窗口)

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
nodejs打包成exe

使用node的pkg包
  1. # 安装pkg
  2. npm install -g pkg
  3. # 使用pkg打包, 该命令会同时编译 linux, win, mac 版的exe
  4. pkg server.js
  5. # 只打包win版
  6. pkg -t win server.js
复制代码
如果安装pkg后提示 pkg不是内部命令, 重新打开cmd窗口再试,如果还提示,则需要配置环境变量
查看 .npmrc 文件的配置信息 (默认在C:\Users{用户}下, 如果没有则去 node安装目录下npm下查找)
查看 配置信息中的 prefix 配置路径, 添加到环境变量, 再重启cmd窗口
设置开机自启动 (一)

在打好的exe程序目录下 创建bat文件
  1. # nodejs exe路径
  2. call E:\sdl\server.exe
复制代码
然后再创建 vbs文件
  1. set ws=WScript.CreateObject("WScript.Shell")
  2. # bat文件路径
  3. ws.Run "E:\sdl\nodeStart.bat",0
复制代码

直接运行 server.exe程序会出现黑窗口, 这样运行不会出现黑窗口
然后将vbs文件移动到 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 目录下
StarUp目录就是 启动目录
重启计算机即可开机自启动
设置开机自启动 (二)

上面的方式需要用户自己去配置,对于不懂的人不能一键解决问题
下面使用将exe程序打包成windows服务的方式 一键设计开机自启动
首先要下载工具包 winsw
下载winsw程序 链接: https://github.com/winsw/winsw/releases
选择稳定的版本 WinSW v2.11.0 ,直达链接:https://github.com/winsw/winsw/releases/tag/v2.11.0


软件运行需要.Net Framework软件环境,根据需要下载,一般情况windows是有这个环境的,查看方法 在地址栏上输入C:\Windows\Microsoft.NET\Framework ,按回车键即可查看,缺失下载安装。
然后下载 sample-minimal.xml 配置文件
将这两个文件和 server.exe(node打的exe程序) 放到同一个目录
修改 sample-minimal.xml 配置文件
  1. <service>
  2.   <!-- ID of the service. It should be unique across the Windows system-->
  3.   # 安装windows服务后的服务ID,必须是唯一的。
  4.   <id>nodeStart</id>
  5.   <!-- Display name of the service -->
  6.   # 服务名称,必须是唯一的。一般和id一致即可。
  7.   <name>nodeStart</name>
  8.   <!-- Service description -->
  9.   # 服务描述,可做备注使用。
  10.   <description>nodeStart</description>
  11.   <!-- Path to the executable, which should be started -->
  12.   # 执行的命令
  13.   <executable>%BASE%\server.exe</executable>
  14.   # 日志输出
  15.   <logpath>%BASE%\serviceLogs</logpath>
  16. </service>
复制代码
然后新建两个 bat文件
install.bat
  1. @echo off
  2. start cmd /k "nodeStart.exe install"
  3. exit
复制代码
uninstall.bat
  1. @echo off
  2. start cmd /k "nodeStart.exe uninstall"
  3. exit
复制代码
上述exe程序为 下载的winsw程序包, 我更改了包名
然后运行 install 即可设置开机自启动
PS:这里的bat涉及windows的批处理命令,而对于开机启动项等敏感位置,会有安全软件进行拦截或报警提示,放行即可。

来源:https://www.jb51.net/article/283975.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具