node.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > node.js > nodejs打包公共包使用

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

作者: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/ 目录,里面同时出现

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

  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 环境也能运行。

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

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

总结

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

您可能感兴趣的文章:
阅读全文