nodejs 相关打包工具

文章介绍了三个用于打包Node.js项目的工具:ncc可将项目编译为单个文件,但某些如dll的文件无法打包;bytenode生成bytecode的jsc文件,需要bytenode运行;pkg则能直接打包成可执行文件,且无需Node环境,其工作原理类似Docker。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 nccGitHub - vercel/ncc: Compile a Node.js project into a single file. Supports TypeScript, binary addons, dynamic requires.

ncc 打包后发现nodemodules都打进去了,但是比如dll或者其他的文件都在外面,所以后面就是一个index.js以及其他打不进去的文件

最后打出来的index.js 是没有加密的

2 bytenode

GitHub - bytenode/bytenode: A minimalist bytecode compiler for Node.js

编译完会出来一个jsc文件二进制文件, 用bytenode 运行这个jsc

3 pkg

GitHub - vercel/pkg: Package your Node.js project into an executable

直接打成一个exe,而且运行不需要node环境,感觉怎么和docker一样。。。

原理同事转了个文章,先mark

pkg 库原理介绍 | 梅旭光的个人博客

### 如何使用 Node.js 22 打包应用程序 对于构建和打包基于 Node.js 的应用程序,有多种方法可以实现这一目标。一种流行的方式是利用 `pkg` 工具来进行打包。 #### 使用 Pkg 进行打包 为了使应用程序能够被打包成独立的可执行文件,首先需要全局安装 `pkg`: ```bash npm install -g pkg ``` 完成安装之后,在项目的根目录下,可以通过下面这条命令来创建适用于不同平台的二进制文件[^4]: ```bash pkg ./ ``` 此命令会读取项目中的 `package.json` 文件,并依据其配置以及所指定的操作系统环境变量自动处理依赖关系并编译出相应的程序版本。 #### 配置 Package.JSON 脚本部分 为了让整个过程更加简便高效,可以在 `package.json` 文件内的 scripts 字段定义特定的任务指令以便于管理和调用。例如设置如下所示的内容[^2]: ```json { "name": "your-app", "version": "1.0.0", "main": "index.js", "scripts": { "build": "pkg ./" } } ``` 这样就可以简单地通过运行 `npm run build` 来触发打包流程而无需每次都手动输入完整的命令字符串。 #### Docker 容器化部署方案 如果考虑跨平台兼容性和隔离性的话,则还可以探索将应用容器化的可能性。这通常涉及到编写一个合适的Dockerfile描述镜像结构,接着借助官方提供的基础映像作为起点,再把源码复制进去最后暴露必要的端口供外界访问。启动时只需执行类似这样的语句即可让服务在线上环境中稳定运作[^3]: ```bash docker run -p 8080:8080 your-app-name ``` 以上就是关于如何采用现代技术栈下的最佳实践对Node.js 应用实施打包的一些见解和技术细节分享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值