用npm创建自己的模块并进行发布

创建npm账号

npm adduser

按照提示输入账号,密码和邮箱,然后将提示创建成功
在这里插入图片描述
【注意】npm adduser成功会自动登陆,所以不需要再登录了

登录npm账号

如果你本来就有npm账号,那么这时你就可以进行npm登录,命令如下:

npm login

此时你同样按照提示输入账号,密码,邮箱,进行登录即可

构建自己要发布的包

准备独一无二的包名
  • 先准备一个包的名字,名字只能由小写英文,中杠线,下划线等进行构成。(尽量不要写中杠线)
  • 准备好包的名字后,你需要在npm服务器上搜索是否已经存在同名的包,如果存在请修改包名,否则无法发布
npm search 你的包名

在这里插入图片描述
表示这个包名可以使用

创建项目文价夹与package.json文件

准备好一个独一无二的包名后,就可以进行新建一个文件夹了,文件夹的名字就取为你的包名
在你新建的文件夹中执行命令:

npm init --yes		//得到一个package.json文件

在这里插入图片描述
说明:在这个package文件中,name就是你这个包的名字(默认和项目文件夹名字相同),如果别人要使用你的包就要通过这个名字进行导入使用
main字段对应的就是你的包被使用时的入口文件,一般为index.js,别人导入你的包实际上就是使用的这个文件

实现你的模块的功能

注意:要建立一个src文件夹,文件夹中要包含一个main.js文件当作入口文件
在这里插入图片描述

写README.md文件

在这里插入图片描述

将你的包进行代码处理

当我们实现了当前包的功能后,理论上就可以直接发布了,但是由于你的包很可能会用在不同的环境下(比如浏览器和node端),这时,如果不对自己的代码进行处理的话,别人下载后很可能无法使用

这里推荐使用rollup进行代码处理,rollup使用方式如下
cnpm i rollup -g		//安装rollup

在这里插入图片描述
处理你的包文件代码的语法:

rollup 主文件路径 --file index.js文件路径 --format umd --name "你的包名"

处理后形成的入口文件Index.js文件
在这里插入图片描述
如果你的包依赖于其他包,记得npm install使用到的包

发布代码包

想要发布成功,package.json文件中的main字段对应的入口文件index.js一定要存在
在上面的步骤中,我们通过rollup模块进行了处理得到了最终的index.js文件

npm publish		//发布代码包的命令
发布时可能遇到的错误

在这里插入图片描述
如果错误是413

检查仓库是否被设成了淘宝镜像库

npm config get registry
https://registry.npm.taobao.org/	//如果是这个地址则说明仓库被设为了淘宝的镜像库

则设回原仓库

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

登录账号(如未登录)

npm login 或者添加用户 npm adduser

重新发布

npm publish

如发布成功,则再次将仓库地址设为淘宝镜像地址

npm config set registry=https://registry.npm.taobao.org/

错误:

npm ERR! you do not have permission to publish "your module name". Are you logged in as the correct user?

发布成功页面
在这里插入图片描述

提示没有权限,其实就是你的module名在npm上已经被占用啦,这时候你就去需要去npm搜索你的模块名称,如果搜索不到,就可以用,并且把package.json里的name修改过来,重新npm publish

npm更新发布后的包

事实上npm更新包和发布包的命令是一样的,都是npm publish,不同之处在于,你需要修改package.json中包的版本号,如果没有改版本号就又进行了发布的话,是会报错的

如何撤销自己发布的包

这里要说一点,取消发布包可能并不像你想象得那么容易,这种操作是受到诸多限制的,撤销发布的包被认为是一种不好的行为

npm unpublish 包名 --force
撤销的注意事项
  1. 根据规范,只有在发包的24小时内才允许撤销发布的包
  2. 根据规范,一旦发布的包被撤销后,就需要等待24小时后才能从新发布此包
  3. 即使你撤销了发布的包,发包的时候也不能再和被撤销的包的名称和版本重复了(即不能名称相同且版本相同,因为这两者构成的唯一标识已经被“占用”了)
使用自己发布的包

和使用其他第三方包的方式是一样的
在这里插入图片描述
在这里插入图片描述
如果要在在浏览器客户端使用,需要按照webpack的打包后才能使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值