nodejs文件實現(xiàn)打包成exe, 并設(shè)置開機(jī)自啟動的方法詳解(沒有黑窗口)
nodejs打包成exe
使用node的pkg包
# 安裝pkg npm install -g pkg # 使用pkg打包, 該命令會同時編譯 linux, win, mac 版的exe pkg server.js # 只打包win版 pkg -t win server.js
如果安裝pkg后提示 pkg不是內(nèi)部命令, 重新打開cmd窗口再試,如果還提示,則需要配置環(huán)境變量
查看 .npmrc 文件的配置信息 (默認(rèn)在C:\Users{用戶}下, 如果沒有則去 node安裝目錄下npm下查找)
查看 配置信息中的 prefix 配置路徑, 添加到環(huán)境變量, 再重啟cmd窗口
設(shè)置開機(jī)自啟動 (一)
在打好的exe程序目錄下 創(chuàng)建bat文件
# nodejs exe路徑 call E:\sdl\server.exe
然后再創(chuàng)建 vbs文件
set ws=WScript.CreateObject("WScript.Shell") # bat文件路徑 ws.Run "E:\sdl\nodeStart.bat",0
直接運(yùn)行 server.exe程序會出現(xiàn)黑窗口, 這樣運(yùn)行不會出現(xiàn)黑窗口
然后將vbs文件移動到 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 目錄下
StarUp目錄就是 啟動目錄
重啟計算機(jī)即可開機(jī)自啟動
設(shè)置開機(jī)自啟動 (二)
上面的方式需要用戶自己去配置,對于不懂的人不能一鍵解決問題
下面使用將exe程序打包成windows服務(wù)的方式 一鍵設(shè)計開機(jī)自啟動
首先要下載工具包 winsw
下載winsw程序 鏈接: https://github.com/winsw/winsw/releases ,
選擇穩(wěn)定的版本 WinSW v2.11.0 ,直達(dá)鏈接:https://github.com/winsw/winsw/releases/tag/v2.11.0
軟件運(yùn)行需要.Net Framework軟件環(huán)境,根據(jù)需要下載,一般情況windows是有這個環(huán)境的,查看方法 在地址欄上輸入C:\Windows\Microsoft.NET\Framework ,按回車鍵即可查看,缺失下載安裝。
然后下載 sample-minimal.xml 配置文件
將這兩個文件和 server.exe(node打的exe程序) 放到同一個目錄
修改 sample-minimal.xml 配置文件
<service> <!-- ID of the service. It should be unique across the Windows system--> # 安裝windows服務(wù)后的服務(wù)ID,必須是唯一的。 <id>nodeStart</id> <!-- Display name of the service --> # 服務(wù)名稱,必須是唯一的。一般和id一致即可。 <name>nodeStart</name> <!-- Service description --> # 服務(wù)描述,可做備注使用。 <description>nodeStart</description> <!-- Path to the executable, which should be started --> # 執(zhí)行的命令 <executable>%BASE%\server.exe</executable> # 日志輸出 <logpath>%BASE%\serviceLogs</logpath> </service>
然后新建兩個 bat文件
install.bat
@echo off start cmd /k "nodeStart.exe install" exit
uninstall.bat
@echo off start cmd /k "nodeStart.exe uninstall" exit
上述exe程序為 下載的winsw程序包, 我更改了包名
然后運(yùn)行 install 即可設(shè)置開機(jī)自啟動
PS:這里的bat涉及windows的批處理命令,而對于開機(jī)啟動項等敏感位置,會有安全軟件進(jìn)行攔截或報警提示,放行即可。
相關(guān)文章
Nodejs中的計時器(setTimeout?setIntervals?etImmediate)使用案例解析
這篇文章主要介紹了Nodejs中的計時器(setTimeout?setIntervals?etImmediate)使用案例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06Nodejs?Socket連接池及TCP?HTTP網(wǎng)絡(luò)模型詳解
這篇文章主要為大家介紹了Nodejs?Socket連接池及TCP?HTTP網(wǎng)絡(luò)模型,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08如何設(shè)置process.env.NODE_ENV生產(chǎn)環(huán)境模式
process.env.NODE_ENV默認(rèn)只有兩種狀態(tài)即development和production,本文主要介紹了process.env.NODE_ENV設(shè)置生產(chǎn)環(huán)境模式,感興趣的可以了解一下2021-09-09在CentOS 7服務(wù)器上安裝Node.js的方法步驟
Node.js 是一個用于服務(wù)器端編程的 JavaScript 平臺,允許用戶快速構(gòu)建網(wǎng)絡(luò)應(yīng)用程序,通過在前端和后端都使用 JavaScript,開發(fā)可以更加一致并且可以在同一個系統(tǒng)中設(shè)計,在本指南中,我們將向您展示如何在 Ubuntu 14.04 服務(wù)器上開始使用 Node.js2024-09-09npm安裝windows-build-tools卡在Successfully?installed?Python2.7
這篇文章主要介紹了npm安裝windows-build-tools卡在Successfully?installed?Python2.7的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10