博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何发布第一个属于自己的npm包
阅读量:7125 次
发布时间:2019-06-28

本文共 1839 字,大约阅读时间需要 6 分钟。

什么是NPM?

NPM是随同NodeJS一起安装的javascript包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

  1. 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  2. 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  3. 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

发布前的准备

1. 注册一个npm账号

前往进行注册

2. 创建一个简单的包

在本地创建一个项目文件夹sugars_demo (名字自己取,不要和NPM上已有的包名重复冲突就好)

然后通过终端进入文件夹(路径每个人不一样)

cd sugars_demo

接着可以通过命令创建一个包信息管理文件package.json

npm init

一路回车或根据包的内容来填写相关信息后,package.json内容大概如下

{  "name": "sugars_demo",  "version": "1.0.0",  "description": "A demo",  "main": "index.js",  "scripts": {    "test": "echo \"Error: no test specified\" && exit 1"  },  "repository": {    "type": "git",    "url": ""  },  "keywords": [    "sugars",    "demo"  ],  "author": {    "name": "sugars",    "email": "343166031@qq.com"  },  "license": "MIT"}

接着在sugars_demo文件夹里创建一个index.js文件,然后简单敲几行代码

;(function (global, factory) {  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :    typeof define === 'function' && define.amd ? define(factory) :      global.moduleName = factory()}(this, (function () {  var test = {    sayHi: function () {      console.log('hi');    }  };  return test})))

到这里一个简单的包就创建好了。

如果想再完善一下的话,还可以在包根目录下创建README.md文件,里面可以写一些关于包的介绍信息,最后发布后会展示在NPM官网上。

开始发布创建好的包

使用终端命令行

如果是第一次发布包,执行以下命令,然后输入前面注册好的NPM账号,密码和邮箱,将提示创建成功

npm adduser

如果不是第一次发布包,执行以下命令进行登录,同样输入NPM账号,密码和邮箱

npm login

注意:npm adduser成功的时候默认你已经登陆了,所以不需要再进行npm login了

接着先进入项目文件夹下,然后输入以下命令进行发布

npm publish

当终端显示如下面的信息时,就代表版本号为1.0.0的包发布成功啦!前往NPM官网就可以查到你的包了

myMacBook-Pro:sugars_demo sugars$ npm publish+ sugars_demo@1.0.0

如果遇到显示以下信息,比如

npm ERR publish 403You do not have permission to publish 'bootstrap'.Are you logged in asthe corrent user?:bootstrap

意思就是你没有权限发布名为“bootstrap”的包,显然这个鼎鼎有名的包已经有人发布了,所以你只能另取它名。

更新已经发布的包

更新包的操作和发布包的操作其实是一样的

npm publish

但要注意的是,每次更新时,必须修改版本号后才能更新,比如将1.0.0修改为1.0.1后就能进行更新发布了。

这里的包版本号有一套规则,采用的是(语义化版本),通俗点意思就是版本号:大改.中改.小改

转载地址:http://smael.baihongyu.com/

你可能感兴趣的文章
软件开发人员应具备的基本素质 !!!
查看>>
无线运维——J2ME和WAP运维方式的优缺点
查看>>
生产环境Shell脚本Ping监控主机是否存活(多种方法)
查看>>
关于SQLServer2000中触发器的使用——多行数据提交
查看>>
commons-fileupload 1.3.1 上传测试
查看>>
红帽集群套件RHCS四部曲(概念篇)
查看>>
TFS配置(二)
查看>>
GeoServer地图开发解决方案(五):基于Silverlight技术的地图客户端实现
查看>>
Android应用程序键盘(Keyboard)消息处理机制分析(3)
查看>>
Linux上连接Microsoft SQL Server 2005
查看>>
私有云管理-Windows Azure Pack
查看>>
Linux下文件和目录的颜色代表的含义
查看>>
Forefront Client Security服务器部署
查看>>
Crystal Reports中的字段
查看>>
一个例子探究jQuery的Ajax应用(二)
查看>>
PPT of "SharePoint 2007 网站性能优化"
查看>>
爪哇国新游记之三十四----Dom4j的XPath操作
查看>>
node17
查看>>
Java程序性能优化4
查看>>
第一次负责项目总结
查看>>