pkg编译nestjs项目
LYT
首页
分类
标签
项目
留言
友链
关于

pkg编译nestjs项目

2025年1月1日14时16分
2025年1月1日14时19分
node
node sqlite nestjs
浏览量:
总浏览量:
0

介绍

pkg可以把node项目编译成二进制文件,使得其可以在没有node环境的服务器上面运行

安装

打开终端输入以下命令来安装pkg包

npm install -g pkg

配置项目

修改项目目录下的package.json,添加以下配置项,其中node的版本应该跟你本地node版本一致,其中bin属性是pkg索要编译的目标目录

{ "scripts":{ "pkg:win": "pkg . -t node18-win-x64 -o app-win --debug", "pkg:mac": "pkg . -t node18-mac-x64 -o app-mac --debug", "pkg:linux": "pkg . -t node18-linux-x64 -o app-linux --debug" }, "bin": "dist/main.js", }

开始编译

在用pkg打包之前先将项目编译一次,因为pkg包不能识别typescript文件

npm run build

然后执行pkg打包命令

npm run pkg:win

如果出现找不到module的情况可以按照下面方式配置package.json,注意这个pkg和scripts同级

{ "pkg": { "assets": [ "node_modules/sqlite3" ], "outputPath": "dist/", "targets": [ "node18-win-x64", "node18-linux-x64" ] }, }

可能出现的问题

sqlite3或者其他一些包在win下打包成linux二进制可能不能被正确编译,这个时候只能本地开一个虚拟机编译重复以上操作,或者在服务器上安装node、npm然后用npm install安装缺失的包