注册NPM 账号
注册地址:www.npmjs.com/
初始化自己要发布的项目
搭建本地环境:安装node.js,包含了npm命令。 新建目录,在该目录下,初始化项目:npm init。 按照提示填写初始化信息,我的模块名称为:wr-npm-test,初始版本号:v1.0.0。 模块名称需遵循相关政策要求:www.npmjs.com/policies , 不能够与已有NPM模块名冲突等等。 模块代码 index.js:
function npmDemo(argument) {
var name = 'wr';
var f1 =function f(arg){console.log(arg)}
return {
name:name,
f1:f1
}
}
module.exports=npmDemo();
登录npm,发布自己的npm包
npm set registry https://registry.npmjs.org/
npm login
// 输入自己的账号、密码和邮箱
Username: ***
Password: ***
Email: (this IS public) ***
// 成功登录
Logged in as *** on https://registry.npmjs.org/
根据提示输入之前注册的账号、密码。 发布npm包:
npm publish
注意:
- package.json中的author要和登录npm账号的一致
- 项目名需要小写
- 在publish之前需要去邮箱验证一下账号
此时在自己个人的npm账号主页可以看到该包。
使用自己发布的包(模块)
npm install wr-npm-test
新建其它目录,初始化:npm init
。 使用已发布NPM包的示例代码test.js:
var test_npm = require('wr-npm-test');
console.log(test_npm)
console.log(test_npm.f1(11));
console.log(test_npm.name)
运行示例代码:node test.js
。
输出:
{ name: 'wr', f1: [Function: f] }
11
undefined
wr
更新自己的NPM包(模块)及 readme文件
修改代码和readme.md后,执行命令:
npm version patch
// 或者加上-m参数来指定自定义的commit message
npm version patch -m "Upgrade to %s for reasons"
npm publish
npm version后面参数说明:
major:主版本号,破坏模块对向后的兼容性,版本号变动 v1.0.0->v2.0.0
minor:次版本号,增加新功能,不影响现有功能,版本号变动 v1.0.0->v1.1.0
patch:补丁号,比如修复bug等,版本号变动 **v1.0.0->v1.0.1
premajor:预备主版本
prepatch:预备次版本
prerelease:预发布版本
npm version | 功能 |
---|---|
major | - 如果没有预发布号,则直接升级一位大号,其他位都置为0 - 如果有预发布号: – 中号和小号都为0,则不升级大号,而将预发布号删掉。即2.0.0-1变成2.0.0,这就是预发布的作用 - 如果中号和小号有任意一个不是0,那边会升级一位大号,其他位都置为0,清空预发布号,即 2.0.1-0变成3.0.0 |
minor | - 如果没有预发布号,则升级一位中号,大号不动,小号置为空 - 如果有预发布号: – 如果小号为0,则不升级中号,将预发布号去掉 - 如果小号不为0,同理没有预发布号 |
patch | - 如果没有预发布号:直接升级小号,去掉预发布号 - 如果有预发布号:去掉预发布号,其他不动 |
premajor | - 直接升级大号,中号和小号置为0,增加预发布号为0 |
preminor | - 直接升级中号,小号置为0,增加预发布号为0 |
prepatch | - 直接升级小号,增加预发布号为0 |
prerelease | - 如果没有预发布号:增加小号,增加预发布号为0 - 如果有预发布号,则升级预发布号 |
版本号策略
版本号格式:主版本号**.次版本号.**修订号;
主版本号:当你做了不兼容的 API 修改;
次版本号:当你做了向后兼容的功能性新增;
修订号:当你做了向后兼容的问题修正;
处于开发阶段的项目版本号以0.Y.Z形式表示,此阶段正在开发基础功能、公众API;
版本号只能增加,禁止下降,代码的修改必须以新版本形式更新;
使用更新后的NPM包
更新NPM包
针对patch: npm install wr-npm-test
针对minor: npm install wr-npm-test
针对major: npm install wr-npm-test@2.0.0
其它内容上同。