1.npm官网创建npm账户

npm网站地址:https://www.npmjs.com/

npm网站注册地址:https://www.npmjs.com/signup

2.命令行工具登录npm

npm login

验证登录是否成功

npm who am i

3.创建npm库

npm init

按照提示输入相应内容:

以下为package.json内容:

{
"name": "zgb_npm",
"version": "1.0.0",
"description": "it is a example npm",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "zgb",
"license": "ISC"
}

4.同级目录下新建index.js并编写内容

exports.sayHello=function(){
    return "Hello,zhoudaozhang.";
};

到这里我们一个简单的npm包就创建完成了,接下来我们来发布npm包

5.发布npm包

npm publish

如果发布成功,则会提示:

6.验证是否发布成功

换一个目录,下载我们刚刚发布的npm包

说明刚刚已经发布成功了

7.版本更新

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

8.舍弃某个版本的模块

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

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

//删除要用force强制删除。超过24小时就不能删除了。自己把握好时间。
npm --force unpublish zgb_npm

10.注意事项:

a.发布的时候用国内镜像会报错,我们应使用默认的:

npm config set registry http://registry.npmjs.org 

b.npm包package.json中registory属性一定要填写,每次publish npm时package.json中version版本一定要大于上一次。

c.npm publish failed put 500  unexpected status code 401这样的报错信息,往往是没有登录成功,操作npm login

d.npm包的name是唯一的,如果有同名,发布时会报错

最后推荐一个网址:

http://javascript.ruanyifeng.com/nodejs/npm.html#toc19

创建并发布npm包的更多相关文章

  1. 使用Vue-cli3.0创建的项目,如何发布npm包

    使用Vue-cli3.0创建的项目,如何发布npm包 在使用vue进行项目开发时,如果我们想要发布一个包,有时候会有点迷糊,不知道应该怎么修改脚手架的默认设置.这里记录一下一些常见的操作. 创建ind ...

  2. 利用 Azure Devops 创建和发布 Nuget 包

    利用 Azure Devops 创建和发布 Nuget 包 原 Visual Studio Team Service ,简称 VSTS,能够创建 pipelines 管道以构建应用程序,并将其部署到任 ...

  3. 使用cnpm搭建私有NPM仓库 发布npm包

    关于如何使用cnpm搭建私有的npm仓库看这里→ http://blog.fens.me/nodejs-cnpm-npm/ 我本人还没有机会真正实践操作过,公司的npm仓库是我老大搭建的,我这里仅仅记 ...

  4. 不会发布npm包?进来看看?

    前言 npm(Node Package Manager),一个Node的包管理器,平时我们常用的公共模块(插件)或者叫做包大多都放在上面,所以接下来要封装的插件,我们就简单称它为npm包,本文从就从这 ...

  5. 前端组件用 Scope 发布 npm 包的方法

    1.引言 多人.多组织或多组件发布 npm 包到同一个仓库时,可能出现命名冲突问题. 为了解决这个问题,npm 引入了“scope”(范围)概念. 在 Angular 项目中,我们通常可以看到“@an ...

  6. 用@vue/cli发布npm包

    1.环境准备 安装node,npm,@vue/cli 2.初始化项目 用@vue/cli创建新项目 vue create mtest-ui 删除public,main.js,App.vue等无关文件, ...

  7. 基于vue组件,发布npm包

    亲测好用,如出错,请留言 1.项目初始化 使用vue脚手架创建,但vuecli太重,我们使用简单的工程脚手架进行处理,输入命令 vue init webpack-simple my-project n ...

  8. 使用vuecli3发布npm包

    一.使用vuecli3创建项目 vue create svgicon 二.修改目录,开发组件前的准备 把src目录改为examples作为查看组件的演示目录,新建packages目录作为组件编写的目录 ...

  9. 开发并发布npm包,支持TypeScript提示,rollup构建打包

    前言: 工作了几年,想把一些不好找现成的库的常用方法整理一下,发布成npm包,方便使用.也学习一下开发发布流程. 主要用到的工具:npm. 开发库:babel.typescript.rollup.es ...

随机推荐

  1. 适用MySQL Migration Toolkit 1.0 将oracle迁移到mysql中遇到的问题

    这里主要说一下我在适用中碰到的问题,主要过程参考 http://www.cnblogs.com/duwenlei/p/3520759.html. 首先启动MySQLMigrationTool.exe ...

  2. JS 拖动DIV 需要JQUERY 支持

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. Android自学反思总结(下)

    后来陆陆续续过了大半个月,导员给找了一个Udacity在线学习的Android开发教程,只有一个月的免费学习机会,因此很快开始了叫Sunshine的天气应用的开发,教学视频整体是采用先自己思考并填写某 ...

  4. iOSiOS开发之数据存储之NSKeyedArchiver

    1.概述 NSKeyedArchiver归档和plist文件存储不同的是NSKeyedArchiver可以直接保存对象.如果对象是NSString.NSDictionary.NSArray.NSDat ...

  5. require include 一个隐藏的用法:作用域。

    最近在研究php底层框架,奇怪的一点.控制器里为什么要把从model里获取的数据 需要$this->assign('items', $items); 这种形式模板文件里才可以调用到这个变量.控制 ...

  6. 关于SQL调优(Distinct 和 Exits)

    今天写了一段查询人员Id和人员编号的,由于需要从其他的表中取条件,因为人员表和另外的表对应的是一对多的关系,所以我使用了Distinct关键字对用户编号进行去重复,然后发现那个效率简直没法看,然后旁边 ...

  7. Android 开发之开发插件使用:Eclipse 插件 SQLiteManger eclipse中查看数据内容--翻译

    最近研究了一段时间Android开发后发现,google自带的ADT工具,缺失一些开发常用的东西,希望可以构建一个类似使用JAVA EE开发体系一样开发的工具包集合,包括前台开发,调试,到后台数据库的 ...

  8. SpringMVC基础学习(三)—参数绑定

    一.基本数据类型的绑定 页面 <form action="${pageContext.request.contextPath}/test.do" method="p ...

  9. 关于for()循环使用过程中遇到的问题(俄罗斯方块游戏中遇到的问题)

    for循环的定义: for(参数1:参数2:参数3),参数1通常是初始化参数的,参数2是判断,参数3是对参数的操作.这三个参数都不是必须的. 这里想说的是,参数1的使用:比如下列语 int nLine ...

  10. nagios报错HTTP WARNING: HTTP/1.1 403 Forbidden解决方法

    Nagios--localhost报警:"WARNING: HTTP/1.1 403 Forbidden "解决方法: In dashboard it shows alert on ...