发布npm包详细步骤以及常见问题解决(基于Vue)
具体步骤如下:
1、安装nodeJS
-
在下载安装文件,本地安装后对应的npm也会被一同安装 安装完成后命令行执行以下命令查看安装版本
node -v npm -v
2、注册账号
npm和github应该是合作了,部分账号信息可以同步
2.1 注册github账号
-
新建项目并clone到本地
2.2 注册npm账号
-
在注册账号,登陆后点击发送验证邮件完成账户验证 也可以直接在本地命令行执行 ~npm adduser~ ,然后输入账号、密码和邮箱创建用户。完成后默认登录
3、本地文件
3.1 创建自己的项目
可以使用npm init 创建也可以使用vue/cli搭建;
在新项目中会有package.json 和入口文件(默认是 index.js)
3.2 登陆npm
-
执行命令 npm login 登陆,根据提示输入 *用户名* 、 *密码* 、 *邮箱* 可以通过 npm whoami 来查看当前登陆的用户名
4、 发布 执行 npm publish 来发布代码到npm上;以后每次发布都需要修改版本号,否则会发布失败
5、删除已经发布的包 删除一个已经发布的包是一件非常严肃的事情。 如果有别的包或用户对要删除的包有依赖,那会造成很大的问题
命令行执行 npm unpublish ModuleName --force 删除包;npm unpublish ModuleName@a.b.c 来删除指定版本 注意:即使删除了已经发布的包,重新发布新的包时,新包的名字也不能和被删除的包的名称重复了;根据规范,只有在发包后的24小时内才允许删除这个包
推荐使用 npm deprecate ModuleName[@a.b.c] Message 来替代删除命令
6、常见问题
-
错误信息1、:npm ERR! no_perms Private mode enable, only admin can publish this module
解决:执行以下命令查看是否使用了淘宝的镜像地址,如果是,就改为原来的地址
npm config get registry npm config set registry=http://registry.npmjs.org
改回淘宝的地址
npm config set registry=https://registry.npm.taobao.org
-
错误信息2、:名字冲突了,需要更改成唯一的名字 E403 npm ERR! 403 403 Forbidden - PUT http://registry.npmjs.org/npm-ceshi - Package name too similar to existing packages; try renaming your package to @zhanglanlan/npm-ceshi and publishing with npm publish --access=public instead 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.
说明名字冲突了,需要更改成唯一的名字,但是不能把名字改成他们推荐的那个@zhanglanl/npm-ceshi;因为会变成私服地址
解决:这个时候就加一个自己的标识即可比如:npmceshi-zhanglanlan
-
错误信息3、:npm中的邮箱没有验证
E403
npm ERR! 403 403 Forbidden - PUT http://registry.npmjs.org/npmceshi-zhanglanlan - you must verify your email before publishing a new package:
解决:(说明npm中的邮箱没有验证)这个时候你找到自己注册的邮箱,点进去验证一下
-
命令执行后无响应或者很长时间后才响应
可能跟网络环境有关。看看是否设置了VPN,或者更换网络(试试手机热点、其他网络)尝试
7、其他
有部分文件不想发布到npm上:在文件夹中添加 .gitignore 或 .npmignore ,根据规则配置即可
