手动上传一个NPM包

855 阅读3分钟

前言

手动npm包上传(windows),需要npm账号,到npm官网注册www.npmjs.com/

使用场景:

1.  通过终端,帮助用户下载第三方依赖,方便使用(比如:打包工具, 插件…)
2.  通过npm服务器,下载安装他人编写的命令行程序到本地。
3.  将自己写的包或者命令行程序发布到npm服务器,供他人下载使用。

npm存在的问题:

    npm虽然好用,但是存在的问题也很明显,那就是它的服务器在国外。每次通过npm下载东西的时候,都是从国外的地址进行下载,那么就会存在一些不稳定的因素导致下载有时会很慢,并且可能会下载失败。

准备工作

安装

1.安装node搭建npm环境 node下载地址 nodejs.org/zh-cn/

node版本很多尽量不要选择最新的,可能项目其他插件不支持等等,官网给了推荐版本兼容应该最好
可以使用nvm来管理node版本,很方便

image.png

nvm使用参考: blog.csdn.net/qq_44401643…

安装成功后使用node-v查看对应node版本,npm -v查看对应npm版本

image.png

nrm管理工具

nrm安装
  • npm install nrm -g 全局安装
  • nrm --version 查看版本确定安装是否成功
nrm相关指令
  • nrm --version 查看 nrm 版本号
  • nrm ls 查看当前可用的镜像源列表
  • nrm test 测试镜像地址的速度
  • nrm use [镜像名称] 切换 npm 的下载地址

image.png

初始化环境

新建文件目录, npm init,也可以npm init --yes快速创建package.json文件

自定义步骤

  • package name 上传包名称
  • version 版本号(默认1.0.0)
  • description: 描述信息
  • git repository:: git仓库地址(需要git地址,无可以直接跳过)
  • entry point: 文件入口(默认index.js)
  • test command: 测试命令(可以直接跳过)
  • author: 上传者
  • license: (ISC): 许可证(限制用户使用,无可直接跳过)
  • keywords: 包名关键字(npm更好的搜索到包,标签)
初始化成功生成生成package.json文件,index手动创建的测试入口文件

image.png

登录

  • npm adduser : 添加npm(新用户)
  • npm login : 登录npm (老用户)
Username:npm用户名
Password:密码
Email:邮箱
Enter one-time password from your authenticator app:绑定npm账号邮箱获得OTP校验码
Logged in as 你的用户名 on https://registry.npmjs.org/. 登录成功

发布

  • npm publish: 发布npm包
npm notice
npm notice package: this-is-a-test-npm-jx@1.0.0
npm notice === Tarball Contents ===
npm notice 97B  index.js
npm notice 217B package.json
npm notice === Tarball Details ===
npm notice name:          this-is-a-test-npm-jx
npm notice version:       1.0.0
npm notice package size:  368 B
npm notice unpacked size: 314 B
npm notice shasum:        77f1b35059584957ecd95df87e05eaf6bd2bba87
npm notice integrity:     sha512-Vls6IFKWkSvvY[...]/fLHtmCse0RMw==
npm notice total files:   2
npm notice
表示发布成功

引入对应npm (测试) image.png

更新NPM

  • npm version : type(类型)

    示例当前版本号为1.0.0 以(X,Y,Z举例说明)

npm version patch (修复bug,小改动,Z改动,1.0.1)
npm version minor (增加新功能,Y改动,1.1.0)
npm version major (有非常大的改动,X改动,2.0.0)

也可以直接在package.json直接修改对应的版本号或者名称等

撤销NPM包

  • npm unpublish : 包名
1.根据规范,只有在发包的**24小时内才允许**撤销发布的包( unpublish is only allowed with versions published in the last 24 hours)
2.再次发包的时候名称不能与已经撤销的包名称相同,因为已经被占用

备注

npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/你的包名 - You cannot publish over the previously published versions: 1.0.0.
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.
(包名与npm官网现有的包冲突或者没跟新版本包,对应修改相关问题,名称或者版本号)
npm ERR! code ETIMEDOUT npm ERR! syscall connect npm ERR! errno ETIMEDOUT
(网络环境问题,切换手机热点或者等一会)