1. 注册npm账号
方式一: 通过npm官网注册
方式二: 通过终端注册
$ npm adduser
Username: YOUR_USER_NAME
Password: YOUR_PASSWORD
Email: YOUR_EMAIL@domain.com
查看npm当前使用的用户
$ npm who am i
注意邮箱要验证,会发送验证链接到你的注册邮箱,没有验证不能发布代码的
2. 代码库命名
名称不能重复,重复无法提交,先搜索一下是否已存在
3. 创建项目
需要一个package.json文件,这个文件不仅仅是用来标明依赖和npm script脚本,也可以是一个npm包被外界识别的配置文件。
npm init packagename -y(在未创建文件夹情况下)
// or
npm init (已创建文件情况下)
依次生成仓库配置信息
{
"name": "dd-f2",
"version": "1.0.0",
"description": "dingding f2",
"main": "app.js",
"scripts": {
"build": "npm run clean && webpack",
"clean": "rm -rf dist",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/FernAbby/dd-f2.git"
},
"keywords": [
"dingding",
"eapp"
],
"author": "wenzhen",
"license": "ISC",
"bugs": {
"url": "https://github.com/FernAbby/dd-f2/issues"
},
"homepage": "https://github.com/FernAbby/dd-f2#readme",
"devDependencies": {
"webpack": "^4.42.1",
"webpack-cli": "^3.3.11"
},
"dependencies": {
"@antv/f2": "^3.6.3"
}
}
4. 本地测试
npm pack
会生成一个 dd-f2-1.0.0.tgz版本文件,参看https://www.npmjs.cn/cli/pack/
打开一个新的项目,然后安装本地包
npm install 路径/dd-f2-1.0.0.tgz
5. 提交发布
- 先登录你的npm账号
npm adduser Username: <your name> Password: <your password> Email: <yourmail>
按照你注册的账号配置好,看一下package.json中author尽量与npm账户一致。
在根目录下配置账号信息,只用配置一次即可,我上传的时候发现有提示必须admin权限才能上传问题就是没在根目录下配置信息
检查是否登录成功
npm who am i
# 如果不成功则重新登录一下
npm login
- 配置成功之后提交代码
npm publish
如果提交成功会出现如下提示:

错误情况:
- 401
执行npm publish 报错:401 Unauthorized - PUT https://registry.npm.taobao.org/ - You must be logged in to publish packages.
npm login
要确定你登录的是否是此镜像
nrm ls

nrm use npm
# 切换到npm仓库再发布
注意每次提交版本号都要比上次的高
5. 测试是否提交成功
看是否能从npm上下载下来
npm install dd-f2 --save
一些常见的错误:
- no_perms Private mode enable, only admin can publish this module
这是因为镜像设置成淘宝镜像了,设置回来即可
npm config set registry http://registry.npmjs.org
-
npm publish failed put 500 unexpected status code 401
一般是没有登录,重新登录一下 npm login 即可 -
npm ERR! you do not have permission to publish “your module name”. Are you logged in as the correct user?
包名被占用,改个包名即可。最好在官网查一下是否有包名被占用,之后再重命名 -
you must verify your email before publishing a new package
邮箱未验证,去官网验证一下邮箱
网友评论