发布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 ,根据规则配置即可

经验分享 程序员 微信小程序 职场和发展