npm组件开发流程

2,281 阅读2分钟

npm注册

[npm网站地址](https://www.npmjs.com/)

[npm网站注册地址](https://www.npmjs.com/signup)

npm登录

npm login

userdeMacBook-Pro-2:bag-first user$ npm login
Username: lixiaohong9091
Password: 
Email: (this IS public) 1534054864@qq.com
Logged in as lixiaohong9091 on https://registry.npmjs.org/.

验证是否登录 npm who am i

userdeMacBook-Pro-2:bag-first user$ npm who am i
lixiaohong9091
userdeMacBook-Pro-2:bag-first user$ 

显示自己的npm账号标示已登录

创建npm包

mkdir bag-first
cd bag-first
npm init生成npm工程和package.json文件,在package.json文件中填入相应内容

![undefined](https://intranetproxy.alipay.com/skylark/lark/0/2019/png/80892/1562815984718-57718e38-8584-422a-93b4-93beb2f540bc.png) 
  • 同级目录下新建index.js并编写内容

exports.sayHello=function(name){
    console.log('i am is'+ name)
};

这样一个简单的npm包完成

发布npm包

npm publish (npm包名必须是唯一的,不能与已有npm包重名)

显示如下图证明发布成功

验证npm包是否发布成功

新建一个新工程
npm install '包'
![undefined](https://intranetproxy.alipay.com/skylark/lark/0/2019/png/80892/1562816584533-49349afe-31ed-410d-9bce-9704b24877eb.png) 
证明发布成功
var firstB = require('bag-first'); 
firstB.sayHello('lixiaohong');

在新工程中使用

npm包本地调试

cd ~/projects/node-bloggy  # go into the dir of your main project
npm link ../node-redis     # link the dir of your dependency

npm link 不会再项目的package.json 中添加dependencies依赖

npm包更新

npm version <update_type> -m "<message>"

其中update_type 有三种:

patch增加一位补丁号(比如 1.1.1 -> 1.1.2)

minor增加一位小版本号(比如 1.1.1 -> 1.2.0)

major增加一位大版本号(比如 1.1.1 -> 2.0.0)

比如:

npm version patch -m "Version %s - v1.0.2"

最后提交更新的版本

npm publish

舍弃某个版本的模块

npm deprecate my-thing@"< 1.0.2" "critical bug fixed in v1.0.2"

撤销自己发布的版本。这只是一个测试的包,最好当然还是撤销下来

24小时内可删除

npm --force unpublish zgb_npm

npm包下载

npm install moduleName # 安装模块到项目目录下
 
npm install -g moduleName # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置。
 
npm install -save moduleName # -save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖,生产环境使用(如依赖组件)。
 
npm install -save-dev moduleName # -save-dev 的意思是将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖,开发环境使用(如打包工具webpack,生产环境就不需要了)。