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

IT 文章30秒前更新 小编
0 0 0

本文主要讲解关于nodejs打包作为公共包使用的完整流程相关内容,由优网导航(www.uonce.com)提供,欢迎关注收藏本站!

前言

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

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

ad

程序员导航

优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站

一、前置准备

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

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

  3. 本地登录

    ad

    AI 工具导航

    优网导航旗下AI工具导航,精选全球千款优质 AI 工具集

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

ad

免费在线工具导航

优网导航旗下整合全网优质免费、免注册的在线工具导航大全

  • 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写的一个简单项目打包工具
  • NodeJS项目如何打包成可执行文件
  • node app 打包工具pkg的具体使用
  • Nodejs使用pkg打包为可执行文件的解决方案
  • 如何将node服务打包成可执行文件PKG

相关推荐: Miniscript 让比特币真正可编程:从继承规划到企业财库,普通人也能玩转复杂规则

你有没有想过,有一天你的比特币钱包不仅能“存钱”,还能自动执行复杂的花费逻辑?比如: 你突然失联半年,家人能自动取回资金,但平时谁都不能动? 公司付款要两个总监签字,大额支出还得 CFO 加签? 和人做场外交易,既不用交托管费,又能靠代码保障安全? 这些听起来…

© 版权声明

相关文章

暂无评论

暂无评论...