nodejs打包作为公共包使用的完整流程
作者:leijmdas
在Node.js项目中,打包和部署是发布应用的关键步骤,这篇文章主要介绍了nodejs打包作为公共包使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
前言
面给出一份「从 0 到 1」把 Node.js 代码打包并发布为公共 npm 包的完整流程,全部步骤均来自 2024-2025 年最新社区实践,可直接照做。
(如只想打绿色可执行文件而不发布,可跳到最后「附:PKG 绿色可执行包」小节)
一、前置准备
安装 Node.js ≥ 14(推荐 18 LTS)
注册 npm 账号 → https://www.npmjs.com/signup
本地登录
npm login # 按提示输入账号、密码、邮箱 npm whoami # 验证是否登录成功
二、创建与编码
新建文件夹并初始化
mkdir my-utils # 包名仅作示例 cd my-utils npm init -y # 生成默认 package.json
修改
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" } }
业务代码
src └── index.ts
示例
src/index.ts
export const sleep = (ms: number) => new Promise<void>(r => setTimeout(r, ms));
安装打包工具(零配置,2024 最流行)
npm i -D tsup typescript @types/node
三、一键构建
npm run build
生成 dist/
目录,里面同时出现
index.js
→ CommonJSindex.mjs
→ ESModuleindex.d.ts
→ 类型声明
四、本地“白嫖”测试(可选)
把包链到全局
npm link
在任意项目里
npm link my-utils
使用
const { sleep } = require('my-utils'); (async () => { await sleep(1000); console.log('ok'); })();
五、发布公共包
确保包名全局唯一(去 https://www.npmjs.com/search 搜一下)
发布
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 也能用)
安装
npm i -g pkg
在
package.json
里增加"bin": "dist/cli.js", "pkg": { "targets": ["node18-win-x64", "node18-linux-x64", "node18-macos-x64"], "outputPath": "release" }
打包
pkg . --compress Brotli
得到
release/
目录下的绿色可执行文件,无 Node 环境也能运行。
完成!现在你已经同时拥有
一个可
npm i xxx
安装的公共包;一份可选的绿色可执行文件用于离线分发。
如需继续补充「CI 自动发布」「语义化版本」「双模块(CommonJS + ESM)兼容」等进阶主题。
总结
到此这篇关于nodejs打包作为公共包使用的文章就介绍到这了,更多相关nodejs打包公共包使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!