下面就详细讲解一下如何实现“nodejs文件实现打包成exe, 并设置开机自启动的方法详解(没有黑窗口)”:
1. 安装pkg和node-windows
1.1 安装pkg
pkg是一个命令行工具,可以将Node.js程序打包成独立的可执行文件(在macOS、Linux和Windows上都可以使用),可以在不安装Node.js的情况下运行。要使用pkg,首先需要安装它。可以通过下面的命令进行安装:
npm install -g pkg
1.2 安装node-windows
node-windows是一个将Node.js程序注册为Windows服务的库,它可以让我们很方便地将Node.js程序设置为开机自启动服务。同样需要首先进行安装:
npm install -g node-windows
2. 将Node.js程序打包成可执行文件
2.1 创建Node.js程序
首先需要编写Node.js程序。可以简单创建一个hello.js文件,里面的代码如下:
console.log('Hello World!');
2.2 打包Node.js程序
打包Node.js程序非常简单,只需要在命令行中输入如下命令:
pkg hello.js --targets win-x64
这里将hello.js文件打包成Windows的x64可执行文件,执行完毕后会在当前目录下生成一个名为hello.exe的可执行文件。
3. 将可执行文件设置为开机自启动服务
3.1 注册为Windows服务
在命令行中,进入到hello.exe所在的目录,执行下面的命令:
nssm.exe install HelloService "D:\hello.exe"
这里的HelloService是服务名称,"D:\hello.exe"是可执行文件的完整路径。
3.2 设置起始方式和用户名
执行完上面的命令后,会出现Windows服务的属性设置界面。在Startup选项卡中,设置起始方式为自动,并且输入要使用的用户名和密码。
3.3 启动Windows服务
设置好属性之后,可以在Services管理器中找到HelloService,并启动它。此时就可以看到Node.js程序的输出了。
示例说明
示例1:使用Express框架创建Web服务器并打包成exe
下面是一个使用Express框架创建Web服务器的示例程序,我们需要将它打包成exe,然后设置为开机自启动服务。
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(3000, () => {
console.log('Example app listening on port 3000!');
});
将上面的代码保存为文件example.js,然后在命令行中执行如下命令:
pkg example.js --targets win-x64
执行完毕后会在当前目录下生成一个名为example.exe的可执行文件。
接下来可以使用上文中的方法将example.exe设置为开机自启动服务。
示例2:将Node.js调用Python脚本打包成exe
如果需要在Node.js中调用Python脚本,也可以将这个功能打包成exe,并设置为开机自启动服务。
下面是一个使用Python的示例程序,我们需要将它打包成exe,然后在Node.js中调用。
test.py文件:
import time
while True:
print("Hello Python")
time.sleep(10)
在Python的环境中执行如下命令进行打包:
pyinstaller -F test.py
执行完毕后会在当前目录下生成一个名为test.exe的可执行文件。
下面是Node.js中调用Python脚本的示例程序:
const { execFile } = require('child_process');
const path = require('path');
const pythonProcess = execFile(path.join(__dirname, 'test.exe'));
pythonProcess.stdout.on('data', data => {
console.log(data);
});
pythonProcess.stderr.on('data', data => {
console.error(data);
});
pythonProcess.on('close', code => {
console.log(`child process exited with code ${code}`);
});
将上面的代码保存为文件example.js,然后在命令行中执行如下命令:
pkg example.js --targets win-x64
执行完毕后会在当前目录下生成一个名为example.exe的可执行文件。
接下来可以使用上文中的方法将example.exe设置为开机自启动服务。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodejs文件实现打包成exe, 并设置开机自启动的方法详解(没有黑窗口) - Python技术站