一、包发布:把代码分享给全世界
发布包到npm仓库就像开一家小店,准备好商品(代码)后简单几步就能开门营业。
技术栈:Node.js
# 1. 登录npm账号(没有账号先去官网注册)
npm login
# 输入用户名、密码、邮箱(注意开启二次验证)
# 2. 初始化包(若未初始化)
npm init -y
# 会生成package.json文件,记得修改"main"字段指向入口文件
# 3. 发布!
npm publish
# 成功后会显示包名和版本,如 my-package@1.0.0
# 4. 发布测试版(可选)
npm publish --tag beta
# 用户需通过 `npm install my-package@beta` 安装
注意事项:
- 包名必须全网唯一(可提前通过
npm search检查) - 每次发布需更新版本号(参考第二节)
- 敏感信息用
.npmignore过滤(类似.gitignore)
二、版本升级:语义化版本控制
版本号不是随便改的,主版本.次版本.修订号 分别代表不同级别的变更。
技术栈:Node.js
# 1. 手动修改package.json中的"version"字段
# 或使用命令自动升级:
# 修订号+1(修复bug)
npm version patch # 1.0.0 → 1.0.1
# 次版本+1(新增功能且向下兼容)
npm version minor # 1.0.1 → 1.1.0
# 主版本+1(不兼容的改动)
npm version major # 1.1.0 → 2.0.0
# 查看历史版本
npm view my-package versions
场景对比:
- 修复文案错误 →
patch - 新增API方法 →
minor - 删除旧API →
major
三、脚本运行:让重复操作一键完成
package.json的"scripts"字段能帮你自动化执行任务,比如打包、测试。
技术栈:Node.js
// package.json示例
{
"scripts": {
"start": "node app.js", // 启动应用
"build": "webpack --mode production", // 打包
"test": "jest --coverage", // 跑测试
"deploy": "npm run build && scp -r ./dist user@server:/path" // 组合命令
}
}
运行方式:
# 基本执行
npm run build
# 简写(仅限start/test等预设命令)
npm test
# 并行任务(需安装npm-run-all)
npm-run-all build:css build:js
优点:
- 复杂命令变简单别名
- 团队协作时统一执行标准
四、依赖审计:给项目做个安全检查
npm audit 能检查依赖库中的已知漏洞,像给项目定期体检。
技术栈:Node.js
# 1. 全面检查
npm audit
# 2. 自动修复可修补的漏洞
npm audit fix
# 3. 仅检查高风险漏洞
npm audit --audit-level=high
# 4. 生成详细报告(JSON格式)
npm audit --json > report.json
典型输出:
=== npm audit security report ===
High Regular Expression Denial of Service
Package lodash
Dependency of webpack
Path webpack > lodash
More info https://npmjs.com/advisories/1523
应对策略:
- 按照建议升级依赖
- 若暂时无法修复,用
npm audit suppress临时忽略(需记录原因)
五、实用技巧锦囊
1. 查看包详情
npm view lodash dependencies # 查看依赖项
npm view lodash dist-tags.latest # 查看最新版本号
2. 清理缓存
npm cache clean --force # 解决某些安装异常问题
3. 快速初始化
npm init -y --scope=myorg # 生成带作用域的包名(如@myorg/utils)
4. 依赖版本锁定
npm shrinkwrap # 生成npm-shrinkwrap.json锁定依赖树
总结与场景指南
适用场景:
- 团队协作开发公共组件库(包发布)
- 长期维护的开源项目(版本控制)
- 复杂构建流程(脚本自动化)
- 金融、医疗等对安全敏感的项目(依赖审计)
技术优缺点:
- ✅ npm生态丰富,工具链完整
- ❌ 部分操作需联网(如发布、审计)
最后建议:
- 每次发布前跑一遍
npm test - 使用CI工具自动执行
npm audit - 主版本升级时通过
@next标签先进行灰度测试
评论