开始做之前确认node.js是已安装的。
NPM包构建
创建demo目录,新建index.js文件
index.js文件示例:module.exports.sayHello = function(){ return "Hello World!"; }
在项目中引导创建一个package.json文件
npm init
注册npm账号
要发布npm包当然需要在npm官网注册一个属于自己的账号
npm官网地址: https://www.npmjs.com
或者通过命令创建:npm addUser
在cmd中登录账号
注册成功后,打开cmd进入到demo目录,登录账号:npm login
输入用户密码以及邮箱,登录成功后可以输入查询命令:
npm whoami
就能看到你酷酷的账号名了~~
上传npm包
- cmd进到demo目录,输入如下命令:
npm publish
这时候npm可能会报错,不要紧张:
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! you do not have permission to publish "demo". Are you logged in as the
correct user? : demo
这是什么原因??就是与npm仓库的包名重复了
拿出package.json文件,把name字段值改成下面:
"name": "test-demo-one"
还有一点要注意的是npm对包名的限制:不能有大写字母/空格/下滑线
npm包管理
管理npm包权限
查看模块拥有者 $ npm owner ls <package_name> 添加发布者 $ npm owner add <user> <package_name> 删除发布者 $ npm owner rm <user> <package_name>
撤销发布包( 在项目目录下执行 )
npm unpublish --force
主要是处于安全性考虑,在Azer NPM 撤包事件后,npm公布了一版新的规则,如下:
- 版本更新少于24小时的包允许下架;
- 超过24小时的包的下架需要联系npm维护者;
- 如果有npm维护者参与,npm将检查是否有其他包依赖该包,如果有则不允下架;
- 如果某个包的所有版本都被移除,npm会上传一个空的占位包,以防后来的使用者不小心引用怀有恶意的替代者。
- npm的版本控制
npm version patch npm version minor npm version major
例如:我原本的项目是1.0.0版本的话
- 若是1中情况,变为1.0.1
- 若是2中情况,变为1.1.0
- 若是3中情况,变为2.0.0
不过也可以在package.json中的version更改~~
使用npm包
在要使用的项目中:
npm install --save-dev test-demo-one
即可;
扩展:
好的npm包,要有完整的md描述,以及测试用例,可以参考下:
https://github.com/parro-it/awesome-micro-npm-packages
这里有一些简单的npm包,可以参考学习下;