前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >npm 发包和管理包及镜像源管理

npm 发包和管理包及镜像源管理

作者头像
chuchur
发布2022-11-23 15:56:24
1.2K0
发布2022-11-23 15:56:24
举报
文章被收录于专栏:禅境花园禅境花园

将撸好的轮子发到NPM(node package manager)上很简单,只需要几个步骤 ,

登录账号

如果连账号都没有的话,[点此创建]https://www.npmjs.com/signup。

使用 npm login 登录

根据命令行提示,输入用户名、密码、邮件地址:

代码语言:javascript
复制
$ npm login
Username: chuchur
Password: 
Email: (this IS public) chuchur@qq.com
Logged in as chuchur on https://registry.npmjs.org/.

发包

如果连包都没, 那赶紧撸一个。

搞个目录, 进到里头,npm init 初始化一下

代码语言:javascript
复制
# 搞个目录
mkdir test-pkg
# 进到里头
cd tets-pkg
# 初始化
npm init

最终生成一个 package.json文件, 这个文件包含发布项目所需的必要项。

代码语言:javascript
复制
package name: (test-pkg)
version: (1.0.0)
description: this is a test pgk.
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)

最后一步,用 npm publish发布该项目

代码语言:javascript
复制
npm publish

如果一个同名的包已经存在 NPM,你将发布失败!

可通过npm search 命令看是否被占用:

代码语言:javascript
复制
npm search test-pkg

非要用这个名字怎么办,发布包到scope下,可以二选一:

  • package.json中,手动的修改name@username/package-name
  • 替代 npm initnpm init --scope=username

username 就是你的 npm 账号名

如果你的仓库有一个scope,你需要调整发布命令:

代码语言:javascript
复制
npm publish --access public

一个粗糙的发包流程就搞完了。

版本管理

升级包

发的包有bug ,我要更新包,就得重新发一个高一点的版本。

先更新版本 ,再发布

major (大版本),minor(版本),patch(小修复)

代码语言:javascript
复制
# 从 0.0.1 更新到 1.0.0
npm version major
# 从 0.0.1 更新到 0.1.0
npm version minor
# 从 0.0.1 更新到 0.0.2
npm version patch

执行版本命令之后,再发布

代码语言:javascript
复制
npm publish

废弃包

这个包, 不想维护了, 有其它的替代方案, 那......就废了它。

代码语言:javascript
复制
npm deprecate test-pkg "包有毒,不建议安装"

注意, 这个时候不是说包没有, 包还在的,在npm网站上仍然能够查到已废弃的npm包 。

废弃状态,是不能进行更新的。

删除包

这包我不要了,屎山代码见不得人,爱谁谁。

代码语言:javascript
复制
npm unpublish test-pkg -fore
# or
npm unpublish test-pkg -f

那么这个包就不见了,npm上 也找不到,屎山代码终于不被人所见, 好开森。

版本撤回

我操, 刚更新了一个小版本, 发现又造成了另外一个新的bug ,这可咋办,难不成我又要再发一个"打死不改版本2.0"吗,那要是这样, 是不是后面还有 "打死不改版本最终版本1000.0"版本呢。

不可能, 绝对不可能。。把这个有bug 的版本撤回即可。

代码语言:javascript
复制
npm unpublish test-pkg@2.0.3

以上撤回有bug的2.0.3 版本。

发包前的准备和辅助工具NP

  • 首先得有个包
  • 包 remote了 git仓库
  • 至少已经push到 remote 至少一次
  • 工作目录是干净的(已经commit and push)
  • 更新版本号
  • 给代码(屎山)创建 git tag
  • 给代码(屎山)创建 release notes

以上这准备做好了, 才可以发一个正式的包。

发包的流程都已经熟悉了, 代码没问题, npm version然后npm publish, 这个包就发上去了。

有一个辅助工具可以帮我们做这个事情 :NP

全局安装 np

代码语言:javascript
复制
 npm install --g np

安装完成之后,准备发包前执行即可:

代码语言:javascript
复制
np

他能辅助你做的工作, - 更新版本号 - 检查test 错误 - 检查是否已经得交了代码 - 给包打tag - 发包 - 提示你写release notes

当然,你也可以不用它。自己能做的事情, 不麻烦别人。

镜像源管理(nrm)

有时候我们装一个包 , 死活安装不了, 网络问题和被墙的问题,那么一定知道cnpm

cnpm 是 npm 镜像源其中的一种。

npm 默认的镜像源 是 https://registry.npmjs.org/

安装 nrm

代码语言:javascript
复制
npm install -g nrm

执行 nrm ls 就可以看到:

代码语言:javascript
复制
*npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/

有 腾讯 淘宝镜像源 。

切换镜像源

代码语言:javascript
复制
nrm use taobao #切换成taobao的源

nrm 的一些命令:

代码语言:javascript
复制
nrm -V #查看当前nvm版本; (即:是 ‘nrm -Version’ 简写);
nrm -h #显示所有命令; (即:是 ‘nrm -help’ 简写);
nrm current #显示当前源名称;
nrm add <registry> <url> [home] #添加一个源; (比如:公司自己的私有源);
nrm set-auth <registry> <value> [always]:#设置自定义源的授权信息;
nrm set-email <registry> <value> #给自定义源设置路径;
nrm set-hosted-repo <registry> <value> #设置发布到自定义源的 ‘npm’ 托管仓储
nrm home <registry> [browser] #浏览器中打开源首页;
nrm publish [options] [<tarball>|<folder>] #发布包到自定义源,如果没有使用自定义源,则直接发布到npm;
nrm ls #查看所有的支持源(有*号的表示当前所使用的源,以下[name]表示源的名称)
nrm use [name] #将npm下载源切换成指定的源
nrm use taobao #切换成taobao的源
nrm help #查看nrm帮助
nrm home [name] #跳转到指定源的官网
nrm add name http://registry.npm.frp.trmap.cn/ #增加特定源
nrm del name #删除源
nrm test npm #测试速度
nrm test #测试所有源的速度

如果你用了cnpm 或者 其它 的源, 这个时候你发包是发不了的, 你得把源切回到npm 才可以

当然不用这个逼 ,你也可以手动设置呀,

代码语言:javascript
复制
npm config set registry http://registry.npmjs.org

那是不是切换之后,就没法改变,当然不用它,你还可以零时指定源呀

代码语言:javascript
复制
npm i kui-vue --registry http://registry.npmjs.org

这个东西是备用的,就以防不时之需。 正常时候不推荐使用。 更新不及时,会造成很多问题。

npm 常用命令

代码语言:javascript
复制
npm   -v                             #查看版本号
npm   --help                         #查看npm所有命令
npm   adduser                        #添加npm账号,也可以去npm官网注册
npm   owner ls <package_name>        #查看模块拥有者
npm   owner add <user> <package_name> #添加一个发布者
npm   owner rm <user> <package_name> #删除一个发布者
npm   init                           #构建项目说明,生成package.json文件,如果有刚安装依赖
npm   view           gulp versions   #查看历史版本信息(最多只能显示100条)
npm   view           gulp versions  --json   #查看所有版本信息
npm   view           gulp version    #查看最新版本信息
npm   info           gulp            #查看所有版本及gulp的信息
npm   ls             gulp            #查看本地安裝的gulp版本
npm   ls             gulp -g         #查看全局安裝的gulp版本
npm   i              gulp@3.2.3      #安裝指定版本 
npm   i              gulp            #安装推荐的版本
npm   i              gulp@latest     #安裝指定、最新版本 
npm   i              A B C           #同时安裝ABC三个包
npm   install        gulp -D         #安裝到开发依赖(devDependencies字段中)
npm   install        gulp --save-dev #同上缩写
npm   install        gulp -S         #安裝到生产依赖(dependencies字段中)
npm   install        gulp --save     #同上缩写
npm   install        gulp@3.0.0 --save    
npm   update         gulp            #更新包
npm   update         gulp -g         #全局更新包
npm   uninstall      gulp@3.0.0 --save       #卸载依赖
npm   un             gulp@3.0.0 --save       #同上缩写
npm   install        cnpm -g --registry=https://registry.npm.taobao.org    #安装淘宝镜像
npm   config         list            #查看npm的配置
npm   config         set registry https://registry.npm.taobao.org          #设置淘宝镜像源
npm   config         set registry https://registry.npmjs.org               #设置npm源
npm   set            disturl https://npm.taobao.org/dist                   #设置资源库从淘宝库获取 
npm   cache          clean --force   #清空npm本地缓存  ,用于对付使用相同版本号发布新版本代码的人 
npm   run            dev/test/build  #执行script命令
npm   login                          #发布包时登录npm账号用的
npm   publish                        #发布包到npm官方库
npm   unpublish      test            #撤销已发布的包 
npm   unpublish      test --force    #强制撤销
npm   unpublish      test@1.0.2      #可以撤销发布自己发布过的某个版本代码 
npm   list           -g --depth 0    #查看全局安装过的包 
npm   dist-tag ls                    #查看当前的tag和对应的version
npm   dist-tag add   <package_name>@<version> latest  #把版本打名为 latest的tag
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 登录账号
  • 发包
  • 版本管理
    • 升级包
      • 废弃包
        • 删除包
          • 版本撤回
          • 发包前的准备和辅助工具NP
          • 镜像源管理(nrm)
          • npm 常用命令
          相关产品与服务
          访问管理
          访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档