chiwent / blog

个人博客,只在issue内更新
https://chiwent.github.io/blog
8 stars 0 forks source link

如何发布npm包(包括其他更多操作) #5

Open chiwent opened 6 years ago

chiwent commented 6 years ago

如何发布npm包

首先上npm官网注册一个账号
在发布包之前要梳理好整个项目的结构

初始化

在工程目录下,输入npm init进行初始化,然后会弹出很多信息让你填写,结合自己的情况来填写,如果对一些配置不太清晰,可以参考网上的一些模块的package.json,然后在输入全部信息完成之后,本地会生成一个package.json的文件,里面包含了这个模块的主要信息
如果你发布的cli工具,那么需要在package.json文件中添加"bin"的参数项,内容对应的就是这个包的入口文件(注意路径是相对于这个工程的)

登录等操作

输入npm login,接着输入账户信息登录npm。然后再输入npm adduser添加账户,和前面的操作一样。最后输入npm whoami确认用户信息

发布

输入npm publish可以发布本地的文件。在发布的时候可能会出现类似下面的 问题:

npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! You do not have permission to publish "xxx". Are you logged in as the correct user?  xxx

出现上述问题的原因是这个包的名称已经重复了,你需要确认和网上已经发布的包不一样

撤销发布

npm unpublish可以撤销发布,这是旧版本的命令,建议使用npm deprecate
注意: 已经发布的包只能在24小时内删除,如果遇到问题可以强制删除:npm --force unpublish xxx
并且,撤销发布后要等待24小时后才能重新发布同名的模块

更新发布

如果本地的工程有更新需要同步到npmjs,可以编辑本地的package.json,修改版本号信息,然后输入npm publish
基本的版本命名规则:

主要版本 Major:X.0.0
次要版本Minor:0.X.0
补丁版本Patch:0.0.X

怎么关联到github上

为了在npmjs官网上显示你对应的github地址,你可以在package.json中加入你的github仓库地址
相信不少人在访问github的时候都会发现,很多npm模块在readme中都有npmjs的信息。你可以在https://nodei.co/ 这个网址找到,搜索你已经发布的包,然后将资源粘贴到README中

关于package.json

一个介绍package.json配置的详细教程:npm package.json属性详解

在发布包之前,如果没有下载任何模块,package.json里面并没有依赖的信息。在安装依赖模块后,就会自动添加上这些包的信息,并且,不同的安装方式所呈现的信息也有不同:
npm remove module_name –save: 从项目中移除已安装的模块,并从配置依赖中移除依赖关系
npm remove module_name –save-dev: 从项目中移除已安装的模块,并从配置依赖中移除

补充

如果你觉得使用npm下载模块的时候速度很慢,你可以使用国内的镜像:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org



参考:
npm使用指南
如何发布一个NPM包呢?