【Linux】环境下⽤pkg打包部署NodeJS执⾏⽂件
npm i pkg-fetch -g
因为项⽬原因,需要将NodeJS项⽬⽤pkg打包成⼀个可执⾏⽂件,在Linux arm64环境下独⽴运⾏。如何在linux下安装nodejs、npm、换源、安装pkg等前置操作我就不细说了,⽹上相关的⽂章很多,但是基本上都是介绍如何将项⽬打包成可以在win下执⾏的exe可执⾏⽂件,对于如何在Linux下进⾏打包的介绍⽐较少,因此这些着重记录⼀下如何下Linux环境下通过pkg将Nodejs项⽬打包成可执⾏⽂件。
准备⼯作:如何想打包Linux可执⾏⽂件,必须在linux环境下打包,在win环境下打包会报错:Not able to build for 'linux' here, onlyu for
'win'。也就是说linux可执⾏⽂件需要在linux环境下打包,win⽂件需要在win环境下打包。
因此我⾃备了⼀台linux设备,不过我的Linux环境是linux-arm64国产麒麟操作系统,x86还是arm64差别不⼤。
在linux下打包的命令和win下打包的命令差不多:
pkg -t node14-linux-arm64 ./ --out-path=dist
在执⾏打包命令时,会⾮常坑爹地发现pkg打包⽤的node⼆进制⽂件⽆法下载,因为是从github上下载,经常会因为⽹速或是其它原因导致下载超时。
nodejs到底是干嘛用的呢
经过⼀番搜索后发现,这个node⼆进制⽂件是通过pkg-fetch下载的,为了避免⾃动下载超时,我们可以⼿动预先从pkg-fetch下载node⼆进制⽂件。
1.通过以下提⽰可得知pkg对应的pkg-fetch版本
2.执⾏pkg-fetch安装命令
npm i pkg-fetch -g
3.执⾏完后,在linux的/home/kylin/.pkg-cache⽂件夹下新建v3.2⽂件夹。
4.从pkg-fetch官⽹上⼿动下载对应node⼆进制⽂件。
注意:下载的版本必须与pkg打包命令中的版本⼀致
pkg -t node14-linux-arm64 ./ --out-path=dist
5.将⼆进制⽂件⼿动放到/home/kylin/.pkg-cache/v3.2下
6.重新执⾏pkg命令,就会在dist下⽣成⼀个可执⾏⽂件。
7.运⾏./可执⾏⽂件,验证程序运⾏正常。