阅读 106

npm发包与版本升级

发包

这里先创建一个叫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 发布更新

Snipaste_2021-10-13_01-04-00.png 发布成功, 此时可以看到 版本号已经变了~

升级区别

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

  • 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

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


作者:蓝屏的钙
链接:https://juejin.cn/post/7018227151094677511


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐