Fork me on GitHub

创建发布自己的npm包

开始做之前确认node.js是已安装的。

NPM包构建

  1. 创建demo目录,新建index.js文件
    index.js文件示例:

    module.exports.sayHello = function(){
        return "Hello World!";
    }
    
  2. 在项目中引导创建一个package.json文件

    npm init
    

    注册npm账号

  3. 要发布npm包当然需要在npm官网注册一个属于自己的账号
    npm官网地址: https://www.npmjs.com
    或者通过命令创建:

    npm addUser
    
  4. 在cmd中登录账号
    注册成功后,打开cmd进入到demo目录,登录账号:

    npm login
    
  5. 输入用户密码以及邮箱,登录成功后可以输入查询命令:

    npm whoami
    

就能看到你酷酷的账号名了~~

上传npm包

  1. 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包管理

  1. 管理npm包权限

    查看模块拥有者 
    $ npm owner ls <package_name> 
    添加发布者 
    $ npm owner add <user> <package_name> 
    删除发布者 
    $ npm owner rm <user> <package_name>
    
  2. 撤销发布包( 在项目目录下执行 )

    npm unpublish --force
    

主要是处于安全性考虑,在Azer NPM 撤包事件后,npm公布了一版新的规则,如下:

  • 版本更新少于24小时的包允许下架;
  • 超过24小时的包的下架需要联系npm维护者;
  • 如果有npm维护者参与,npm将检查是否有其他包依赖该包,如果有则不允下架;
  • 如果某个包的所有版本都被移除,npm会上传一个空的占位包,以防后来的使用者不小心引用怀有恶意的替代者。
  1. 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包,可以参考学习下;

-------------本文结束感谢您的阅读-------------