npm 在前端工程化中扮演着不可或缺的角色,前端工程师天天经过npm安装项目依赖,经过npm发布本身的包,更新包,经过npm 脚本运行开发环境,打包等。前端
平时专一于实现业务,一直没有去了解一款包的发布流程,忙里偷闲,今天就体验下编写并发布一个package的过程,记录下来分享给你们。
一个包诞生的过程无非是:编写-测试-发布-迭代-测试-发布...,
初始化项目
mkdir math-tool_demo 新建文件夹
npm init初始化package.json文件,根据提示输入项目信息:git
package name项目名
version 版本
description 描述
entry point 入口文件
test command 测试命令
git repository git仓库地址
keywords 关键字信息
author 做者
协议等
npm init -y:添加 -y 标志,直接默认生成.程序员
编写包里的代码
包含的功能:咱们实现一个加减乘除的小工具。
新建index.js入口文件npm
module.exports = { add:add, minus:minus } function add(num1,num2) { if(typeof num1 === 'number' && typeof num2 === 'number'){ return num1 + num2; }else{ throw('arguments must be number') } } function minus(left,right){ if(typeof left === 'number' && typeof right === 'number'){ return left - right; }else{ throw('arguments must be number') } }
测试json
测试无非就是引入编写的模块,并运行测试用例,此处再也不多说。前端工程化
发布前端工程师
npm login 登陆。输入帐户密码邮箱,若是你没有帐户,先申请:连接。并发
npm publish:发布编写的包
失败:命名重复或相似: 修改一下包名。工具
再次发布:npm publish:成功了!默认版本为1.0.0学习
如何迭代发布的包
包发布出去了,bug是没法避免的,固然做者也会考虑扩展功能,修复bug或功能迭代须要将代码修改同步到远程仓库。
修改代码
好比作出了下述的修改:
module.exports = { add:add, minus:minus } function add() { var left = arguments[0]; var right = arguments[1]; if(typeof left === 'number' && typeof right === 'number'){ return left + right; }else{ throw('arguments must be number') } } function minus(){ var left = arguments[0]; var right = arguments[1]; if(typeof left === 'number' && typeof right === 'number'){ return left - right; }else{ throw('arguments must be number') } }
修改版本号
咱们能够直接改package.json里的version字段值.
不过最好仍是使用npm 提供的命令修改版本号(好比当前为v1.0.0):
详细移步:关于npm语义版本
发布
npm publish
如何使用发布的包
npm install packageName -S [-D ]
分别做为依赖或开发依赖下面以咱们刚发布的包为例:
首次使用该包npm install -S math-tool_demo
安装刚刚发布的包
在index.js里引入并使用:
var math = require('math-tool_demo') var addRes = math.add(1,2); var minusRes = math.minus(1,2); console.log( addRes, minusRes, )//输出:3,-1
正在使用,该包可能已经迭代更新
npm outdated检查每一个定义在项目package.json中包在远程仓库是否有新版本
发现有新版本,目前使用的是1.0.0,最新的是2.0.0。
npm update [packageName]更新包
敲完,发现没反应,并无更新包。
查看package.json中包的依赖定义
有三种版本定义:
^1.0.0意为>=1.0.0 < 1.2.0
~1.0.0意为>=1.0.0 < 1.1.0
所以更新到2.0.0的是不容许的,只能手动更改package.json中的版本号,并更新了。
为什么弄成这样?由于第一个数字意味着major改动,贸然的更新可能会带来没法预计的后果
以上就是本文的所有内容,但愿对你们的学习有所帮助
为了学习工做与休闲娱乐互不冲突,现新建圈【码农茶水铺】用于程序员生活,爱好,交友,求职招聘,吐槽等话题交流,但愿各位大神工做之余到茶水铺来喝茶聊天。了解更多