pnpm zip命令的具体使用

 更新时间:2026年06月02日 08:47:41   作者:像素行者  
pnpm zip是pnpm v7.0.0引入的实验性命令,用于将项目打包成 ZIP 文件,与 pnpm pack 相比,输出格式为 ZIP 且支持依赖打包,下面就来详细的介绍一下pnpm zip命令的具体使用,感兴趣的可以了解一下

pnpm zip 是 pnpm 自 v7.0.0 起引入的实验性命令,用于将项目打包成一个 ZIP 格式 的归档文件。它通常用于快速发布、无网络环境部署或分发整个项目(包括其依赖)。

基本用法

pnpm zip [options] [package-name]
  • 如果不指定 package-name,默认打包当前工作目录下的项目。
  • 在 monorepo 中,可以使用 --filter 指定子项目。

常用选项

选项类型说明
--standalone布尔将项目及其所有依赖打包进 ZIP(包括 node_modules)
--output <path>字符串指定 ZIP 文件的输出路径和文件名(默认 ./<pkg-name>-<version>.zip)
--filter <pattern>字符串在 monorepo 中过滤要打包的子项目(例如 --filter @my-scope/foo)
--no-optional布尔打包时不包含可选依赖
--force布尔如果输出文件已存在,强制覆盖
--config <key=value>键值对临时覆盖 pnpm 配置(如 --config.use-node-version=18)

注意:--standalone 是核心选项。不添加此选项时,ZIP 仅包含项目源文件(类似 pnpm pack 但输出格式为 ZIP);添加后,会把所有 resolved 的依赖(包括 transitive dependencies)也放入 ZIP,形成一个自包含的部署包。

与pnpm pack的区别

特性pnpm packpnpm zip
输出格式.tgz (tarball).zip (ZIP)
默认内容仅项目源文件 + package.json仅项目源文件(不含依赖)
--standalone 行为打包所有依赖(模拟扁平化的 node_modules)
主要用途发布到 npm registry快速部署、离线分发、CI/CD 归档

典型使用场景

1. 打包单项目(包含依赖)为自部署 ZIP

cd my-app
pnpm zip --standalone --output ./deploy.zip

生成一个包含 node_modules 的 ZIP,解压后可直接运行(确保目标环境 Node.js 版本一致)。

2. 在 monorepo 中打包特定子项目

# 打包 packages/backend 项目(含依赖)
pnpm zip --filter @my-project/backend --standalone

生成的 ZIP 文件名为 backend-1.0.0.zip(版本号取自 package.json)。

3. 仅打包源码(不包含依赖)

pnpm zip --output ./source-code.zip

得到只包含项目文件(src/, package.json, README.md 等)的 ZIP。

4. 排除可选依赖以减小体积

pnpm zip --standalone --no-optional

注意事项

  1. 实验性特性:pnpm zip 的功能和选项可能在后续版本中变化。执行前建议查看 pnpm --help 确认当前版本支持。
  2. 性能:大型项目使用 --standalone 时,打包时间可能较长(需要解析和复制所有依赖)。
  3. 兼容性:生成的 ZIP 文件中的 node_modules 结构是扁平化的(类似 npm/yarn 的扁平布局),而不是 pnpm 原本的符号链接结构。这确保了在其他环境中可以正常使用,但可能不完全等同于 pnpm 原生的依赖解析。
  4. 配置影响:pnpm zip 会遵循 package.json 中的 files 字段、.npmignore/.gitignore 等规则,决定哪些文件进入 ZIP。
  5. 版本要求:至少需要 pnpm v7.0.0。可通过 pnpm --version 检查。

进阶:与 CI/CD 结合

在 GitHub Actions 或 GitLab CI 中,pnpm zip --standalone 常用于将构建产物打包为可直接部署的制品:

# .github/workflows/deploy.yml
- run: pnpm install
- run: pnpm zip --standalone --output build.zip
- uses: actions/upload-artifact@v3
  with:
    name: deploy
    path: build.zip

然后下载 ZIP 放到服务器上解压,执行 node index.js 即可启动。

到此这篇关于pnpm zip命令的具体使用的文章就介绍到这了,更多相关pnpm zip命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • node将geojson转shp返回给前端的实现方法

    node将geojson转shp返回给前端的实现方法

    这篇文章主要介绍了node将geojson转shp返回给前端的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • NodeJS搭建HTTP服务器的实现步骤

    NodeJS搭建HTTP服务器的实现步骤

    NodeJS中用来创建服务的模块是http核心模块,本篇就来介绍关于使用http模块搭建HTTP服务器和客户端的方法,以及模块的基本 API,非常具有实用价值,需要的朋友可以参考下
    2018-10-10
  • NodeJS父进程与子进程资源共享原理与实现方法

    NodeJS父进程与子进程资源共享原理与实现方法

    这篇文章主要介绍了NodeJS父进程与子进程资源共享原理与实现方法,结合实例形式分析了nodejs基于cluster模块实现父进程与子进程资源共享的相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • Node.js完整安装配置指南(包含国内镜像配置)

    Node.js完整安装配置指南(包含国内镜像配置)

    本文介绍Node.js的安装配置过程,包括使用Chocolatey、官网下载、国内镜像下载等安装方法,验证安装,配置国内镜像源,环境变量配置,npm配置优化,常用镜像测速脚本,使用nrm管理镜像源,及故障排查内容,最后推荐了完整的配置命令和立即解决方案,感兴趣的朋友跟随小编一起看看吧
    2026-03-03
  • node.js中的fs.appendFileSync方法使用说明

    node.js中的fs.appendFileSync方法使用说明

    这篇文章主要介绍了node.js中的fs.appendFileSync方法使用说明,本文介绍了fs.appendFileSync方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • 使用命令行升级Node.js的版本的操作指南

    使用命令行升级Node.js的版本的操作指南

    这篇文章主要给大家介绍了关于如何使用命令行升级Node.js的版本的操作指南,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2023-11-11
  • node.js中express-session配置项详解

    node.js中express-session配置项详解

    本篇文章主要介绍了node.js中express-session配置项详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Node.js使用Koa搭建 基础项目

    Node.js使用Koa搭建 基础项目

    时下前端工程师有很多人比较关注NodeJs以及express 框架或者Koa 框架之类的新技术。难得我最近闲时较多,利用一下旧历新年尚未正式到来的这片闲暇,也来涉足其中,一窥其中奥妙。
    2018-01-01
  • Node.js中的模块化,npm包管理器详解

    Node.js中的模块化,npm包管理器详解

    这篇文章主要介绍了node模块与npm包管理工具,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-09-09
  • window10下node使用管理神器NVM安装配置超详细步骤

    window10下node使用管理神器NVM安装配置超详细步骤

    nvm全称Node Version Manager是 Nodejs 版本管理器,它让我们能方便的对 Nodejs 的版本进行切换,nvm 的官方版本只支持 Linux 和 Mac, Windows 用户,可以用 nvm-windows,这篇文章主要介绍了window10下node使用管理神器NVM安装配置超详细步骤,需要的朋友可以参考下
    2023-01-01

最新评论