npm发包与升级

本文指导如何创建一个名为@zerozhang/add-function-demo的npm包,包括编写dist/index.js、设置package.json、忽略文件、编写README和CHANGELOG,以及发布、升级和管理版本的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发包

这里先创建一个叫add-function-demo的项目, 写一个简单的求和方法

// dist/index.js
function add(a, b) {
  return a + b;
}

module.exports = add;

创建npm账号

发包必须创建npm账号, 登录时需要输入账号密码和邮箱

npm包大致目录结构

包名
├── dist/index.js
├──.npmignore
├── CHANGELOG.md
├── README.md
└── package.json

package.json文件的配置

当我们npm init -y 初始化一个npm包时, 会出现一个package.json文件:

{
  "name": "add-function-demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

注意: 想要发包, 我们还需要修改或添加一些东西

  1. “name”: “@zerozhang/add-function-demo”

    ◆ 包名要确保是唯一的
    ◆ 而且推荐将包名放置在当前的账号下, 即 "@user/package-name"

  2. “main”: “dist/index.js”

    ◆ 用户在下载npm包时, 会找包的入口文件
    ◆ 使用时, 默认导入就会导入index.js文件

  3. “private”: false

    表明当前包是公开的(私有包无法上传)

修改完之后的package.json:

{
  "name": "@zerozhang/add-function-demo",
  "version": "1.0.0",
  "description": "",
  "main": "dist/index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "zerozhang",
  "license": "ISC"
}

.npmignore文件

类似于.gitignore文件, 该文件中的目录会被npm忽略, 不被上传。比如:

# 忽略目录
examples/
packages/
public/

# 忽略指定文件
vue.config.js
babel.config.js
*.map

README文件

当前项目的说明文档

CHANGELOGO文件

当前项目的升级改版说明文档, 每次升级版本时, 都要附加升级说明

npm镜像

如果有安装过nrm镜像源管理工具的, 必须确保当前是npm源, 否则上传会失败

nrm ls

* npm -------- https://registry.npmjs.org/       
  yarn ------- https://registry.yarnpkg.com/     
  cnpm ------- http://r.cnpmjs.org/
  taobao ----- https://registry.npm.taobao.org/  
  nj --------- https://registry.nodejitsu.com/   
  npmMirror -- https://skimdb.npmjs.com/registry/
  edunpm ----- http://registry.enpmjs.org/   

# 使用nrm use可以切回npm源
nrm use npm

发包命令

  • npm login 登录
  • npm publish 发版
    如果package.json中的name是’@user/package-name’格式的话, 可以添加如下选项进行发版
    npm publish --access public
    

发布成功:

$ npm publish --access public
npm notice 
npm notice package: @zerozhang/add-function-demo@1.0.0
npm notice === Tarball Contents ===
npm notice 65B  dist/index.js
npm notice 256B package.json
npm notice 0    CHANGELOGO.md
npm notice 104B README.md
npm notice === Tarball Details ===
npm notice name:          @zerozhang/add-function-demo
npm notice version:       1.0.0
npm notice package size:  514 B
npm notice unpacked size: 425 B
npm notice shasum:        037b3a7be38ff049956d4e22f9d6efd39e68a5b6
npm notice integrity:     sha512-4JAzO/5vVcUXS[...]1vLBUGtAgOv2A==
npm notice total files:   4
npm notice
+ @zerozhang/add-function-demo@1.0.0

升级

  1. 先修改我们的内容, 修改完记得更新CHANGELOGO文档(比如我们加个乘法):
    // dist/index.js:
    function add(a, b) {
      return a + b;
    }
    function multiply(a, b) {
      return a * b;
    }
    
    module.exports = {
      add,
      multiply
    };
    
    // CHANGELOGO:
    # 更新日志
    ## [1.0.0] - 2021-10-13
    ### 新增
    - 【index】添加 乘法计算
    
  2. 修改完要记得提交, 保持git工作目录是干净的, 否则会导致升级失败:
    $ npm version patch
    npm ERR! Git working directory not clean.
    npm ERR! M CHANGELOGO.md
    npm ERR! M dist/index.js
    

升级命令

  • npm version patch 升级布丁
    此时package中的version会自动升级, 变成 "version": "1.0.1",
  • git push 提交当前版本更新
  • npm publish 发布更新
    在这里插入图片描述
    发布成功, 此时可以看到 版本号已经变了~

升级区别

升级分 布丁/次版本/主版本 三种方式

  • patch (补丁)
    npm version patch 1.0.0–> 1.0.1
  • minor (次要版本)
    npm version minor 1.0.0–> 1.1.0
  • major (主要版本)
    npm version major 1.0.0–> 2.0.0

好啦 今天就分享到这里~!

### 如何升级 npm 至最新版本 可以通过多种方式来实现 npm升级操作,以下是几种常见的方法: #### 方法一:通过 npm 自身进行升级 可以直接利用 npm 提供的功能将其自身升级到指定版本或者最新的稳定版。执行以下命令即可完成全局范围内的 npm 更新: ```bash npm install -g npm@<version> ``` 例如,如果希望安装具体某个版本(比如 8.5.3),可以运行 `npm install -g npm@8.5.3`[^1]。 为了确保获取的是当前可用的最高版本,则无需指明具体的 `<version>` 参数值,而是简单地调用如下指令: ```bash npm install -g npm@latest ``` #### 方法二:借助第三方工具 'n' 进行管理升级 另一种高效的方式是采用专门用于 Node.js 和其配套组件管理的工具——‘n’来进行 npm 版本控制。按照下面的操作流程逐步实施: 1. 首先清除可能存在的旧数据残留以免干扰后续过程。 ```bash sudo npm cache clean -f ``` 2. 接着部署 ‘n’ 工具本身以便进一步操作。 ```bash sudo npm install n -g ``` 3. 最终一步便是实际触发向稳定状态下的最新发行版迁移的动作。 ```bash sudo n stable ``` 此方案不仅限于单纯处理 npm 的情况,还能够方便快捷地调整整个 Node.js 平台框架环境配置状况。 #### 方法三:切换镜像源加速国内网络条件下的下载速度 考虑到国内外互联网连接差异可能导致的速度瓶颈问题,在中国地区开发者群体中间流行一种做法就是更换官方默认仓库地址为中国本土化服务节点之一作为替代选项。这里列举两个常用途径分别对应不同需求场景: - **使用 npmmirror** ```bash npm install -g cnpm --registry=https://registry.npmmirror.com ``` - **沿用传统淘宝 NPM 源** ```bash npm install -g cnpm --registry=http://registry.npm.taobao.org ``` 这两种设置均有助于改善因地理距离引发的数据传输延迟现象从而间接促进整体效率提升[^2][^3]。 综上所述,无论是基于原生功能还是辅助插件支持亦或是优化外部资源链接指向策略都可以有效达成将 npm 转变为最前沿发布形态的目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值