nodejs打包作为公共包使用的完整流程

 更新时间:2025年09月23日 09:28:30   作者:leijmdas  
在Node.js项目中,打包和部署是发布应用的关键步骤,这篇文章主要介绍了nodejs打包作为公共包使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

面给出一份「从 0 到 1」把 Node.js 代码打包并发布为公共 npm 包的完整流程,全部步骤均来自 2024-2025 年最新社区实践,可直接照做。

(如只想打绿色可执行文件不发布,可跳到最后「附:PKG 绿色可执行包」小节)

一、前置准备

  1. 安装 Node.js ≥ 14(推荐 18 LTS)

  2. 注册 npm 账号 → https://www.npmjs.com/signup

  3. 本地登录

    npm login               # 按提示输入账号、密码、邮箱
    npm whoami              # 验证是否登录成功

二、创建与编码

  1. 新建文件夹并初始化

    mkdir my-utils          # 包名仅作示例
    cd my-utils
    npm init -y             # 生成默认 package.json
  2. 修改 package.json(关键字段)

    {
      "name": "my-utils",          // 全网唯一,可先去 npm 搜索确认
      "version": "1.0.0",
      "description": "常用工具函数",
      "main": "dist/index.js",     // CommonJS 入口
      "module": "dist/index.mjs",  // ESModule 入口(可选)
      "files": ["dist"],           // 只发布 dist 目录
      "scripts": {
        "build": "tsup src/index.ts --format cjs,esm --dts",
        "prepublishOnly": "npm run build"
      },
      "keywords": ["utils", "tool"],
      "author": "your-name <you@example.com>",
      "license": "MIT",
      "repository": {
        "type": "git",
        "url": "https://github.com/yourname/my-utils.git"
      }
    }
  3. 业务代码

    src
    └── index.ts

    示例 src/index.ts

    export const sleep = (ms: number) =>
      new Promise<void>(r => setTimeout(r, ms));
  4. 安装打包工具(零配置,2024 最流行)

    npm i -D tsup typescript @types/node

三、一键构建

npm run build

生成 dist/ 目录,里面同时出现

  • index.js → CommonJS

  • index.mjs → ESModule

  • index.d.ts → 类型声明

四、本地“白嫖”测试(可选)

  1. 把包链到全局

    npm link
  2. 在任意项目里

    npm link my-utils
  3. 使用

    const { sleep } = require('my-utils');
    (async () => { await sleep(1000); console.log('ok'); })();

五、发布公共包

  1. 确保包名全局唯一(去 https://www.npmjs.com/search 搜一下)

  2. 发布

    npm publish --access public

    成功后会收到 npm 官方邮件;随后任何人可

    npm i my-utils

六、常见踩坑提醒

表格

复制

问题解决方案
名字重复提前搜索,或加 scope: @yourname/utils 发布时同样 npm publish --access public
私有包收费公共包不要用 @scope/pkg 除非加 --access public
忘记构建用 prepublishOnly 钩子,每次 npm publish 前自动 npm run build
二进制文件如果包内含原生 .node 文件,需在不同平台分别 prebuild 或使用 @mapbox/node-pre-gyp

附:PKG 绿色可执行包(可选,不发布 npm 也能用)

  1. 安装

    npm i -g pkg
  2. package.json 里增加

    "bin": "dist/cli.js",
    "pkg": {
      "targets": ["node18-win-x64", "node18-linux-x64", "node18-macos-x64"],
      "outputPath": "release"
    }
  3. 打包

    pkg . --compress Brotli

    得到 release/ 目录下的绿色可执行文件,无 Node 环境也能运行。

完成!现在你已经同时拥有

  • 一个可 npm i xxx 安装的公共包

  • 一份可选的绿色可执行文件用于离线分发。

如需继续补充「CI 自动发布」「语义化版本」「双模块(CommonJS + ESM)兼容」等进阶主题。

总结

到此这篇关于nodejs打包作为公共包使用的文章就介绍到这了,更多相关nodejs打包公共包使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • NodeJs的fs读写删除移动监听

    NodeJs的fs读写删除移动监听

    这篇文章主要介绍了NodeJs的fs读写删除移动监听,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-04-04
  • Nodejs中使用phantom将html转为pdf或图片格式的方法

    Nodejs中使用phantom将html转为pdf或图片格式的方法

    这篇文章主要介绍了Nodejs中使用phantom将html转为pdf或图片格式的方法,需要的朋友可以参考下
    2017-09-09
  • 30分钟用Node.js构建一个API服务器的步骤详解

    30分钟用Node.js构建一个API服务器的步骤详解

    这篇文章主要介绍了30分钟用Node.js构建一个API服务器的步骤详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • node.js基于mongodb的搜索分页示例

    node.js基于mongodb的搜索分页示例

    本篇文章主要介绍了node.js基于mongodb的搜索分页示例,mongodb分页很简单,这里整理了详细的代码,有需要的小伙伴可以参考下。
    2017-01-01
  • node.js读取Excel数据(下载图片)的方法示例

    node.js读取Excel数据(下载图片)的方法示例

    这篇文章主要给大家介绍了关于node.js读取Excel数据(下载图片)的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用node.js具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • Linux下为Node.js程序配置MySQL或Oracle数据库的方法

    Linux下为Node.js程序配置MySQL或Oracle数据库的方法

    这篇文章主要介绍了Linux下为Node.js程序配置MySQL或Oracle数据库的方法,这里默认已经装配好了Node环境然后我们利用npm包管理工具来进行配置,需要的朋友可以参考下
    2016-03-03
  • Node.js实现文件上传

    Node.js实现文件上传

    这篇文章主要介绍了Node.js实现文件上传的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Nodejs 中的 Buffer 类的创建与基本使用

    Nodejs 中的 Buffer 类的创建与基本使用

    这篇文章主要为大家介绍了Nodejs中Buffer的使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • 一文带你了解Node.js有哪些架构模式

    一文带你了解Node.js有哪些架构模式

    Node.js 凭借其非阻塞、事件驱动的架构,已成为构建各种应用程序的流行选择,使用 Node.js 进行开发时,选择正确的架构模式来满足项目需求至关重要,在本文中,我们将探讨几种 Node.js 架构模式并提供示例来说明它们的用法,需要的朋友可以参考下
    2023-09-09
  • Node 自动化部署的方法

    Node 自动化部署的方法

    本篇文章主要介绍了Node 自动化部署的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10

最新评论