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微信jssdk后端接口

    详解nodejs微信jssdk后端接口

    本篇文章主要介绍了详解nodejs微信jssdk后端接口,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 浅析Node.js的Stream模块中的Readable对象

    浅析Node.js的Stream模块中的Readable对象

    这篇文章主要介绍了浅析Node.js的Stream模块中的Readable对象,是Node.js入门学习中的基础知识,需要的朋友可以参考下
    2015-07-07
  • nodejs基础知识

    nodejs基础知识

    本文主要介绍了nodejs基础知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • node.js爬虫框架node-crawler初体验

    node.js爬虫框架node-crawler初体验

    这篇文章主要介绍了node.js爬虫框架node-crawler的相关资料,帮助大家利用node.js进行爬虫,感兴趣的朋友可以了解下
    2020-10-10
  • node内存泄漏排查与修复过程

    node内存泄漏排查与修复过程

    之前开发了一个node接口,该接口使用canvas绘制产品图提供给java端使用,在运行了一段时间后发现了内存泄漏问题,本文浅记下修复过程,文章通过图文介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • Nodejs连接mysql并实现增、删、改、查操作的方法详解

    Nodejs连接mysql并实现增、删、改、查操作的方法详解

    这篇文章主要介绍了Nodejs连接mysql并实现增、删、改、查操作的方法,结合实例形式详细分析了nodejs针对mysql数据库的的连接、mysql数据库的创建及nodejs针对mysql增删改查等相关操作具体实现技巧,需要的朋友可以参考下
    2018-01-01
  • 浅析Node.js实用的内置API

    浅析Node.js实用的内置API

    这篇文章主要介绍了Node.js实用的内置API,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • Node中的Events模块介绍及应用

    Node中的Events模块介绍及应用

    events模块是node内置的核心模块 这个模块是node中一个非常重要的核心模块,node中所有能触发事件的对象都是这个类的实例
    2022-08-08
  • 使用upstart把nodejs应用封装为系统服务实例

    使用upstart把nodejs应用封装为系统服务实例

    这篇文章主要介绍了使用upstart把nodejs应用封装为系统服务实例,需要的朋友可以参考下
    2014-06-06
  • 利用nginx + node在阿里云部署https的步骤详解

    利用nginx + node在阿里云部署https的步骤详解

    这篇文章主要给大家介绍了关于利用nginx + node在阿里云部署https的步骤,文中通过图文及示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
    2017-12-12

最新评论