正式发布NPM包前先使用Verdaccio+Ngrok测试

想要确保你的NPM包在发布后完美的运行简直是一场噩梦。因为它可以有很多种不同的工作环境,且它在你计算机上的运行表现可能和别的机器上的不同。此时为了解决一个 bug,就要再次发布你的NPM包,因此也提高了版本号。

Strapi,我们面临大量这样的情况。所以,我们用Verdacciongrok建立一个私有NPM本地仓库,在发布到官方的 npm registry (https://registry.npmjs.com) 前,先在一台服务器上去测试。

这篇文章,我们将会介绍怎么样去创建一个专门用于测试NPM包的公共NPM仓库,在发布到 npm registry 前,先在你本机和别的服务器上测试你的NPM包。

创建你的私有本地仓库

第一步将允许你在你的私有本地仓库发布一个NPM包,意味着,如果本地私有仓库存在该NPM包,就不会从NPM官方下载,如果不存在,就从官方的 npm registry (https://registry.npmjs.com)下载。

创建:

通过安装 Verdaccio 来创建你的私有NPM仓库

npm install -g verdaccio

下一步,启动服务。

verdaccio

ℹ️ 你应该可以通过 http://localhost:4873 访问

更新默认的仓库

再接着,我们把 http://localhost:4873 作为默认的仓库地址。

npm config set registry http://localhost:4873

添加一个新的用户

Verdaccio自动的创建一个配置文件,但是并没有为你注册用户。运行下面的代码在本地私仓中创建一个新的用户

npm adduser

使用下面的账号:

  • Username: test
  • Password: test
  • Email: test@company.com

创建一个包

我们将要去创建一个非常简单的包,之后去发布它。

首先,在我们的机器上创建一个空的目录

cd /path/to/a/sandbox/folder 
mkdir foo-package 
cd foo-package

第二步,通过创建一个基础文件 package.json ,初始化你的包

npm init

一路回车下去,package.json看起来像是下面的这样:

{
  "name": "foo-package",
  "version": "1.0.0",
  "description": "Basic package to test publication",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "MIT"
}

最后,创建一个包含如下逻辑的 index.js 文件

module.exports = () => {  
  console.log('My package does nothing!');
};

在本地私有仓库发布NPM包

这个包准备好后,就可以被发布到本地私有仓库。只是在这个包的根目录,简单的运行如下命令:

npm publish
Mac OS用户,你可以找到这个包在
/Users/xxx/.config/verdaccio/storage
并且确保他它成功的被发布。

现在,你的包被发布在本地“测试”仓库 (http://localhost:4873),仅仅你能访问和下载它。为了在别的机器或服务器上测试,你需要把它暴露出去。

使私有的本地仓库被公开访问

此时,你的私有仓库仅可以通过 http://localhost:4873 在你的机器上被访问。我们将会使用 ngrok 把它分享给别的同学。

安装 ngrok

在中断里面打开一个新的 tab 或窗口,安装 ngrok:

npm i ngrok -g

下一步,运行下面的命令暴露 4873 端口:

ngrok http 4873

它将创建一个 URL,像是 http://e55ba6a3.ngrok.io。在浏览器中打开它,你将会看到你自己的npm仓库。根据你分享的URL,你的仓库现在可以被任何人访问。

使用公开的NPM仓库

Strapi,在发布一个新的版本之前,我们通常在真实的生产环境测试该包。我们在AWS上启动一个包含Node.js、npm 和 git pre-installed的 Ubuntu 服务器。

运行这个命令在别的机器中使用你的公共NPM仓库。

npm set registry http://e55ba6a3.ngrok.io

ℹ️ 不要忘记改成你的 ngrok 链接

最终,安装你的NPM包

npm install foo-package

通过运行这个命令,NPM首先尝试从你的仓库(http://e55ba6a3.ngrok.io -> http://localhost:4873)安装 foo-package。但是,如果如果没有找到相应的包,则会去NPM官方仓库(https://registry.npmjs.com)查找。

结论:

我们希望本教程帮助你将NPM包发布到官方的 npm registry (https://registry.npmjs.com)前,在生产环境测试你的NPM包。通过简单的设置,你现在可以像在官方NPM仓库一样发布测试你的包了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值