Skip to content
Node.js 项目打包成 exe 并注册成 Windows 服务的 Demo
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
nsis
.gitignore
README.md
index.js
package-lock.json
package.json

README.md

  • 为什么需要注册成服务?为了不显示命令行窗口且开机自启动。
  • 为什么需要把js项目打包成exe程序?自带Node.js运行环境,不需要再额外配置运行环境。
  • 为什么要把程序打包成安装包?为了方便把程序注册成服务,简化操作。
  • node-windows 也可以注册服务,但是不稳定。遇到过运行后服务注册不成功,也没有任何错误输出的情况。
  • 利用 pkg 可以把js项目打包成自带 Node.js 运行环境的exe程序。
  • 利用 NSIS 可以把软件打包成安装包,可以自定义安装时的一系列动作。
  • 添加服务,可以使用Simple Service Plugin,参看:https://nsis.sourceforge.io/NSIS_Simple_Service_Plugin
  • 直接把普通程序注册成服务,是不能运行的: title

可以用srvany.exe来帮助我们的程序以服务方式运行。可以参考:https://www.cnblogs.com/codealone/p/3156943.html

  • NSIS中,遇到中文(注释也不例外)时可能会报Bad text encoding相关的错误,可以在运行makensis.exe编译脚本时使用/INPUTCHARSET UTF8参数。参考:https://github.com/evshiron/nwjs-builder-phoenix/issues/17
  • NSIS中,pop $0的含义:从栈中弹出变量并赋值给变量$0。其中,$0是内置变量,无需声明(非内置变量必须先声明),可以直接使用。栈和变量都是存储数据的方式,函数传参和返回值通常使用栈来传递。
  • NSIS中,+2意思是跳到后面第二行代码执行。
You can’t perform that action at this time.