npm发包

参考
使用npm 发布自己写的第三方包-npm publish
npm学习(七)之如何发布包、更新发布包、删除发布包

一、NPM登录
1.注册

如果没有账号,先去www.npmjs.com/注册。

2.登录

命令:npm login


image.png
3.查看当前用户

命令:npm whoami


image.png
二、发新包
1.新建一个文件夹并进入,初始化一些包的相关信息

命令:npm init

  • package name(包名字)
  • version(包版本)
  • description(包描述)
  • entry point(包里面主文件也就是入口地址)
  • test command(包的测试命令是什么,可以先不指定)
  • git repository(git地址,这样就可以从npm官网直接点到git上,可以先不指定)
  • keywords(关键字,别人搜东西时怎么搜到比较方便)
  • author(作者)
  • license: (ISC)(包遵循什么样的开源协议)

之后会生成一个package.json文件

2.新建一个文件用来存放包(模块),尝试发布

命令:npm publish


image.png
三、更新包
1.如果本地已经安装过此包,首先修改package.json文件中的版本后,执行npm publish
image.png
2.如果本地没有安装过此包,则需要先找个文件夹安装一下。

将这个包的部分内容进行修改,修改完之后,我们想作为一个新的版本进行提交,那么第一步要做的就是修改版本号,如何修改?
使用命令:npm version <update_type>进行修改,update_type 有三个参数,

  • patch:这个是补丁的意思,补丁最合适;
  • minor:这个是小修小改;
  • major:这个是大改咯;

具体咋用:

  • 比如我想来个1.0.1版本,注意,是最后一位修改了增1,那么npm version patch
  • 比如我想来个1.1.0版本,注意,是第二位修改了增1,那么npm version minor
  • 比如我想来个2.0.0版本,注意,是第一位修改了增1,那么npm version major

然后执行npm publish 我仍然遇到报错

npm ERR! code E403
npm ERR! 403 Forbidden - PUT http://registry.npmjs.org/@xxxr -
 You cannot publish over the previously published versions: 3.2.10.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\admin\AppData\Roaming\npm-cache\_logs\2021-03-24T08_35_39_327Z-debug.log

可是我确认过,远端之前的版本是3.2.9,我现在要发3.2.10呀!此时不要着急,过几分钟去npm官网自己的包页面刷新一下就能看到发版成功了


image.png

如果一直刷新还是没成功,那只能再npm publish一次,具体原因不清楚……

四、删除包

这里要说一点,取消发布包可能并不像你想象得那么容易,这种操作是受到诸多限制的,撤销发布的包被认为是一种不好的行为(试想一下你撤销了发布的包[假设它已经在社区内有了一定程度的影响],这对那些已经深度使用并依赖你发布的包的团队是件多么崩溃的事情!)

首先如果就是想要删除当前的这个版本,执行命令npm unpublish xxx(包名),去官网查看发现已经没有这个包了,如果权限不够加上 --force


image.png
  • 使用命令npm unpublish xxx@1.1.1(包名@版本名)删除指定版本
  • 根据规范,只有在发包的24小时内才允许撤销发布的包( unpublish is only allowed with versions published in the last 24 hours),需要我们发邮件给官方来删除
  • 即使你撤销了发布的包,发包的时候也不能再和被撤销的包的名称和版本重复了(即不能名称相同,版本相同,因为这两者构成的唯一标识已经被“占用”了)
    例如我在撤销包后尝试再发布同一名称+同一版本的包


    image.png

报错,并建议我修改包的版本

npm unpublish的推荐替代命令:npm deprecate <pkg>[@<version>] <message>

使用这个命令,并不会在社区里撤销你已有的包,但会在任何人尝试安装这个包的时候得到警告

例如:npm deprecate penghuwanapp '这个包我已经不再维护了哟~'

五、一些常见的错误:
1、no_perms Private mode enable, only admin can publish this module
npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npm.taobao.org/ng-antd-cli -
 [no_perms] Private mode enable, only admin can publish this module
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy.

这是因为镜像设置成淘宝镜像了,设置回来即可:

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

如果有需要改回淘宝镜像,再次修改为npm的淘宝链接:

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

如果需要查看当前的镜像设置可以使用

npm config get registry
2、npm publish failed put 500 unexpected status code 401

一般是没有登录,重新登录一下 npm login 即可

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

包名被占用,改个包名即可。最好在官网查一下是否有包名被占用,之后再重命名

4、you must verify your email before publishing a new package

邮箱未验证,去官网验证一下邮箱

5、npm ERR! 403 403 Forbidden - PUT registry.npmjs.org/包名字 - You cannot publish over the previously published versions: 1.0.0.

原因:要发布的版本和原来的版本号相同
修改:要修改当前版本号

6、npm版本过低

处理:npm install -g npm update

7、可能权限原因

处理:npm publish --access=public

8、文件夹名和package.json里的'name'属性一样时也无法发布

处理:将文件夹名或'name'改成不一致即可

9、如果之前删除过npm市场同名的包,重新发布会有一定的时间限禁(目前是24小时后)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 首先,去https://www.npmjs.com/signup 注册npm账号,注册后去邮箱中激活账号 在项目文...
    大唐雷恋阅读 1,708评论 0 0
  • 发布到npm 注册npm账号(已有可忽略) 新建文件夹,进入该文件夹,运行npm init,生成package.j...
    淡退阅读 1,033评论 0 0
  • 注册npm账号(已有可忽略) 新建文件夹,进入该文件夹,运行npm init,生成package.json文件 将...
    爱吃荔枝的张长弓阅读 5,669评论 1 6
  • npm 发包 前几天封装了公用的locaStorage组件,当然封装后需要发布npm官网,于是摸索了一番终于搞定了...
    用技术改变世界阅读 2,909评论 0 0
  • 首先需要去npm官网注册一个账号,并验证邮箱 开始制作包mkdir zywcd zywnpm init根据情况填...
    随风飞2019阅读 159评论 0 0