在前端开发中,开发环境中的服务往往需要在本地进行开发、调试和测试。而为了方便在公网上访问本地服务,在开发中通常会使用 ngrok 这样的内网穿透工具来实现内网服务的外网访问。而 @expo/ngrok-bin 这个 npm 包就是一个内网穿透工具 ngrok 的二进制文件包装库,使得我们可以方便地将 ngrok 集成到我们的项目中,从而实现内网服务的外网访问。
安装
@expo/ngrok-bin 可以通过命令行进行安装:
npm install --save-dev @expo/ngrok-bin
使用
@expo/ngrok-bin 可以通过 Node.js API 或者命令行进行使用,以下演示如何通过命令行启动 ngrok 服务并暴露本地服务:
node_modules/.bin/ngrok http 8080
执行这个命令可以启动一个 ngrok 实例,将本地服务的 8080 端口通过 ngrok 进行转发,从而可以通过 ngrok 提供的公网地址访问到本地服务。
注意事项
在使用 @expo/ngrok-bin 时需要注意以下事项:
- ngrok 提供的公网地址可能会过期失效,当需要重新生成公网地址时,需要重新启动 ngrok 服务。
- ngrok 是一个商用软件,免费版的 ngrok 服务有着诸多限制,如果需要使用更高级别的功能,需要购买 ngrok 的商业版服务。同时,ngrok 服务在中国大陆地区的网络环境中表现并不稳定,因此建议在不必要的情况下尽量使用其他内网穿透工具,以降低使用成本和提升服务稳定性。
示例代码
使用 Node.js API 启动 ngrok 服务的示例代码如下:
const ngrok = require('@expo/ngrok-bin'); (async function () { const url = await ngrok.connect({ proto: 'http', addr: 8080 }); console.log(`ngrok tunnel URL: ${url}`); })();
这个代码将启动一个 ngrok 实例,并将本地服务的 8080 端口通过 ngrok 转发到公网地址上,同时打印出 ngrok 提供的公网地址。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f2eafe23b0ab45f74a8bc63