一、首先创建项目 生成package.json
npm init
package name: (hktest) //包名,可更改,也可以使用默认(直接回车)
version: (1.0.0) 0.0.1 //版本,可更改,也可以使用默认(直接回车)
description: 演示上传npm包 //项目描述,方便别人了解你的模块作用,搜索的时候也有用
entry point: (index.js) //指定了程序的主入口文件,可更改,也可以使用默认(直接回车)
test command: //测试命令(直接回车)
git repository: //git仓库(直接回车)
keywords: //一个字符串数组,方便别人搜索到本模块,可更改,也可以使用默认(直接回车)
author: hk//作者,可更改,也可以使用默认(直接回车)
license: (ISC) //你可以在https://spdx.org/licenses/这个地址查阅协议列表 ,可更改,也可以使用默认(直接回车)
二、创建index.js入口文件
const sortName = (name) => {
return "用户" + name
}
export { sortName }
三、新建README.md文件
- npm install
检查代码是否报错 - npm link
可以帮助我们模拟包安装后的状态,它会在系统中做一个快捷方式映射,让本地的包就好像 install 过一样,可以直接使用。
四、登录发布
登录npm账号:
npm login
没有账号就去npm官网注册或者命令行注册:
npm adduser
登录好了就可以执行发布了:
npm publish
五、安装
npm install mylibhanzhen
import { sortName } from 'mylibhanzhen/index';
六、更新包及删除、撤销已发布的npm包
更新直接执行:
npm publish
每次发布要改变版本号,且版本号要比上一次版本号大
这里简单介绍一下版本号。
语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。
如果只是修复bug,需要更新Z位。
如果是新增了功能,但是向下兼容,需要更新Y位。
如果有大变动,向下不兼容,需要更新X位。
删除、撤销已发布的npm包
npm unpublish test //撤销已发布的包
npm unpublish test --force //强制撤销
npm unpublish test@1.0.2 //可以撤销发布自己发布过的某个版本的代码
七、发布遇到的问题及解决方案
1、这一步的常规报错及处理
npmERR!publishFailedPUT403
npmERR!codeE403
npmERR!no_permsPrivatemode enable,only admin can publish this module:
出现原因:使用的是淘宝源cnpm,登陆到的是cnpm
解决方法:切换到npmjs的网址,代码如下
npm config set registry https://registry.npmjs.org2、包名重名报错
报错403:You do not have permission to publish “xxx”. Are you logged in as the correct user?
出现原因:所要publish的包的name和npmjs网上已经发布的包的名字重复,所以收你没有权限发布这个名字的包。(简单解释就是你想要的名字被别人抢先注册了)
解决方法:找到package.json文件,把name的值换掉。如果还出现上述错误就是还是重名的,继续换!3、未激活邮箱报错
报错403:you must verify your email before publishing a new package:
出现原因:没有用邮箱激活登录到注册账号的邮箱 激活一下就好了
八、npm包过滤上传文件 .npmignore
当你上传包到npm库时,有一些本地的依赖文件和测试demo等不想上到npm库里,这时就要用到.npmignore过滤文件了,在根目录下新建文件取名.npmignore,用编辑器打开写入你想过滤文件类型就可以了。
eg: