使用npm创建一个程序库包

使用npm创建一个程序库包

程序库包是npm包的另一种形式。

1、初始化项目

PS E:prjsweb
pminittestmathtool> ls
PS E:prjsweb
pminittestmathtool> npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
PS E:prjsweb
pminittestmathtool> ls

2、编写程序库主体代码

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(num1, num2) {
    if (typeof num1 === "number" && typeof num2 === "number") {
        return num1 - num2;
    } else {
        throw("arguments must be number");
    }
}

主体程序编写好之后,要认真测试一下,必须确认主体代码是完全正确的。

测试就是引入编写的模块,并运行测试用例。

3、发布程序库包。

发布编写的包视图通过npm publish命令实现的。当然,在发布之前,要npm adduser去注册一个nodejs网站的账号,npm login去登录上去,这样才可以使用npm publish发布程序库包。

发布以后,就可以通过npm install mathtool命令来安装它。

之后,在程序中可以用require('mathtool')可以加载这个包,以便在程序中使用它。

var math = require('mathtool')
var addRes = math.add(1,2);
var minusRes = math.minus(1,2);

console.log(addRes, minusRes); //输出:3,-1

4、一个另外的知识点

npm run start或者 npm run build, npm run dev等命令都是在执行package.json文件下scripts下的命令名字而已。
所以,想要增加一个命令,就是scripts字段增加就好了。
”npm run start” 或者更早版本“npm start”,nodejs会解析package.json查找scripts属性下的“start”属性对应的命令,等价于执行node app.js。
通常可以看的很多项目中有“build”,“test", "build-prod"等等应对nodejs项目构建测试的一些scripts,可以自己尝试添加更多scripts字属性验证。

5、更新程序包

程序包发布后,如果遇到bug fix和new features,则需要实现之后,重新发布。
重新发布的时候,需要注意的一点是版本号的更新。

假如,当前版本号是1.0.0,更新版本号的命令有如下三个:
npm version patch-->1.0.1: 属于小修改,不更改功能使用
npm version minor-->1.1.0: 可能添加了一些功能,不影响以前的使用。
npm version major-->2.0.0: 可能改了API,输入大范围的修改。

关于版本号,package.json文件中,有三种写法:
直接写准确的版本号:比如:1.0.0
大版本不动,有功能更新则用新版本:^1.0.0
更保守一点,只能小幅更新如bug修复等:~1.0.0
^1.0.0意为>=1.0.0 < 1.2.0,就是说版本号的第一位即主版本号不变,第二位次版本号、第三位patch号有更新的时候,都自动更新
~1.0.0意为>=1.0.0 < 1.1.0,就是说版本号中第一位主版本号不变、第二位次版本号不改,第三位patch号改了,则就自动更新

在更新程序包之后,在使用程序的代码处,要重新安装新的程序包。

在安装之前,先用npm outdated命令去检查目前项目中的包是否有更新版本:

npm outdated检查每个定义在项目package.json中包在远程仓库是否有新版本

查看清楚后,如果有的包有更新的版本,则可以使用如下命令去安装最新的版本:

npm update pkgName 可以更新这个程序库包



参考资料:
1、https://www.yisu.com/zixun/169701.html




原文地址:https://www.cnblogs.com/zhangzl419/p/15218756.html