首页 > web前端 > js教程 > 正文

怎么使用pkg将Node.js项目打包为可执行文件?

青灯夜游
发布: 2022-07-26 19:33:14
转载
4253人浏览过

如何用pkg打包nodejs可执行文件?下面本篇文章给大家介绍一下使用pkg将node项目打包为可执行文件的方法,希望对大家有所帮助!

怎么使用pkg将Node.js项目打包为可执行文件?

使用pkg可以将Node.js项目打包为可执行文件,甚至可以在未安装Node.js的设备上运行。

实验环境

  • 操作系统:windows

  • node版本: 16.14.2

操作过程

  • 下载PKG

咱们可以选择全局安装,在任意目录执行:

$ npm install -g pkg
登录后复制
  • 打包程序

先写一个简单的程序,比如server.js内容

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.listen(3000, () => {
    console.log('Express web app on localhost:3000');
});
登录后复制

进入nodejs项目根目录,执行如下命令

$ pkg server.js
登录后复制

第一次报错

这时候会报错

$ pkg server.js
> pkg@5.6.0
> Targets not specified. Assuming:
  node16-linux-x64, node16-macos-x64, node16-win-x64
> Fetching base Node.js binaries to PKG_CACHE_PATH
  fetched-v16.14.2-linux-x64          [                    ] 0%> Not found in remote cache:
  {"tag":"v3.3","name":"node-v16.14.2-linux-x64"}
> Building base binary from source:
  built-v16.14.2-linux-x64
> Error! Not able to build for 'linux' here, only for 'win'
登录后复制

大意是,当前环境只支持编译为windows系统的可执行文件,也就是win

Zyro AI Background Remover
Zyro AI Background Remover

Zyro推出的AI图片背景移除工具

Zyro AI Background Remover 55
查看详情 Zyro AI Background Remover

调整指令为:

$ pkg -t win server.js
登录后复制

其中-t win等同于--targets win,也就是说只为windows编译文件。

第二次报错

编译时候再次报错:

$ pkg -t win server.js
> pkg@5.6.0
> Fetching base Node.js binaries to PKG_CACHE_PATH
  fetched-v16.14.2-win-x64            [                    ] 0%> Not found in remote cache:
  {"tag":"v3.3","name":"node-v16.14.2-win-x64"}
> Building base binary from source:
  built-v16.14.2-win-x64
> Fetching Node.js source archive from nodejs.org...
> Error! AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
登录后复制

大意是缓存里缺少相应的二进制文件fetched-v16.14.2-win-x64,咱们只要下载到相应的文件,放到相应的缓存目录就好。

1、去官网下载相应版本文件,比如我的是node-v16.14.2-win-x64

官网地址:https://github.com/vercel/pkg-fetch/releases

image.png

2、将上一步下载的文件node-v16.14.2-win-x64重命名为fetched-v16.14.2-win-x64,放到当前用户的缓存目录中。

比如我的缓存目录是C:\Users\MangoDowner.pkg-cache,拼接上fetch的tag就变成了最终的目录,参照报错中的信息,可以得到tag为v3.3

 {"tag":"v3.3","name":"node-v16.14.2-win-x64"}
登录后复制

咱们可以得到最终的父目录为C:\Users\MangoDowner.pkg-cache\v3.3,
所以最终的文件地址为C:\Users\MangoDowner.pkg-cache\v3.3\fetched-v16.14.2-win-x64

再次编译,成功!

$ pkg -t win server.js
> pkg@5.6.0
登录后复制

更多node相关知识,请访问:nodejs 教程

以上就是怎么使用pkg将Node.js项目打包为可执行文件?的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:segmentfault网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号