CD's blog CD's blog
首页
  • HTMLCSS
  • JavaScript
  • Vue
  • TypeScript
  • React
  • Node
  • Webpack
  • Git
  • Nestjs
  • 小程序
  • 浏览器网络
  • 学习笔记

    • 《TypeScript 从零实现 axios》
    • Webpack笔记
  • JS/TS教程

    • 《现代JavaScript》教程
🔧工具方法
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

CD_wOw

内卷的行情,到不了的梦
首页
  • HTMLCSS
  • JavaScript
  • Vue
  • TypeScript
  • React
  • Node
  • Webpack
  • Git
  • Nestjs
  • 小程序
  • 浏览器网络
  • 学习笔记

    • 《TypeScript 从零实现 axios》
    • Webpack笔记
  • JS/TS教程

    • 《现代JavaScript》教程
🔧工具方法
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 技术文档

    • Markdown使用教程
    • npm常用命令
    • NPM包发布方法
      • 初始化包
      • 登录npm
      • 发布包
      • QA
        • 需要登录问题
        • 邮箱未验证问题
        • 没有权限发布
        • 包名过于类似
        • 只有管理员才有权限发布
        • 无法发布到私有包
        • 版本号
        • git动态标徽
    • npm packageJson属性详解
    • yaml语言教程
  • 工具方法
  • 技术文档
CD
2022-06-18
目录

NPM包发布方法

# 初始化包

npm init
1

# 登录npm

npm login
1

# 发布包

npm publish
1

# QA

# 需要登录问题

Q:

npm ERR! code ENEEDAUTH
npm ERR! need auth auth required for publishing
npm ERR! need auth You need to authorize this machine using `npm adduser`
1
2
3

A: 输入npm login进行登陆,初次登录会发送邮件确认,npm adduser也行

# 邮箱未验证问题

Q:

npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! you must verify your email before publishing a new package: https://www.npmjs.com/email-edit : your-package
1
2
3

A: 登录npmjs.com ,为自己的账号绑定一个可用的邮箱即可

# 没有权限发布

Q:

npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! You do not have permission to publish "your-package". Are you logged in as the correct user? : your-package
1
2
3

A: npm包发布重名, 通常我们在包头部加自己的名字 如: @caidix/ (package name), 来避免重名

# 包名过于类似

Q:

npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! Package name too similar to existing packages;your-package
1
2
3

A: npm包类似,同理也是修改包名逻辑

# 只有管理员才有权限发布

Q:

npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! [no_perms] Private mode enable, only admin can publish this module [no_perms] Private mode enable, only admin can publish this module: your-package
1
2
3

A: 通常出现在我们使用nrm包修改了镜像源, 推荐使用nrm, nrm ls 查看使用中的镜像,切换成npm镜像即可。 nrm use npm

# 无法发布到私有包

Q:


npm ERR! publish Failed PUT 402
npm ERR! code E402
npm ERR! You must sign up for private packages :
1
2
3
4

A: 这个当你的包名为@your-name/your-package时才会出现,原因是当包名以@your-name开头时,npm publish会默认发布为私有包,但是 npm 的私有包需要付费,所以需要添加如下参数进行发布:

npm publish --access public
1

# 版本号

npm包的版本号也是有规范要求的,通用的就是遵循semver语义化版本规范,版本格式为:major.minor.patch,每个字母代表的含义如下:

  • 主版本号(major):当你做了不兼容的API修改
  • 次版本号(minor):当你做了向下兼容的功能性新增
  • 修订号(patch):当你做了向下兼容的问题修正

先行版本号是加到修订号的后面,作为版本号的延伸;当要发行大版本或核心功能时,但不能保证这个版本完全正常,就要先发一个先行版本。   先行版本号的格式是在修订版本号后面加上一个连接号(-),再加上一连串以点(.)分割的标识符,标识符可以由英文、数字和连接号([0-9A-Za-z-])组成。例如:

1.0​​.0-alpha
1.0.0-alpha.1
1.0.0-0.3.7
1
2
3

常见的先行版本号有:

  • alpha:不稳定版本,一般而言,该版本的Bug较多,需要继续修改,是测试版本
  • beta:基本稳定,相对于Alpha版已经有了很大的进步,消除了严重错误
  • rc:和正式版基本相同,基本上不存在导致错误的Bug
  • release:最终版本

在版本号中,我们经常会看到^、~或者>=这样的标识符,或者不带标识符的,这都代表什么意思呢?

  1. 没有任何符号:完全百分百匹配,必须使用当前版本号
  2. 对比符号类的:>(大于) >=(大于等于) <(小于) <=(小于等于)
  3. 波浪符号~:固定主版本号和次版本号,修订号可以随意更改,例如~2.0.0,可以使用 2.0.0、2.0.2 、2.0.9 的版本。
  4. 插入符号^:固定主版本号,次版本号和修订号可以随意更改,例如^2.0.0,可以使用 2.0.1、2.2.2 、2.9.9 的版本。
  5. 任意版本*:对版本没有限制,一般不用
  6. 或符号:||可以用来设置多个版本号限制规则,例如 >= 3.0.0 || <= 1.0.0

# git动态标徽

https://img.shields.io/github/issues/{github用户名}/{仓库名}.svg
https://img.shields.io/github/forks/{github用户名}/{仓库名}.svg
https://img.shields.io/github/stars/{github用户名}/{仓库名}.svg
https://img.shields.io/github/license/{github用户名}/{仓库名}.svg
1
2
3
4
编辑 (opens new window)
上次更新: 2023/03/22, 15:28:00
npm常用命令
npm packageJson属性详解

← npm常用命令 npm packageJson属性详解→

最近更新
01
gsap动画库学习笔记 - 持续~
06-05
02
远程组件加载方案笔记
05-03
03
小程序使用笔记
03-29
更多文章>
Theme by Vdoing | Copyright © 2020-2023 CD | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式