npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

localtunnel-runner

v1.0.0

Published

Run any shell command with access to a public SSH tunnel

Downloads

7

Readme

localtunnel-runner

Run any shell command with access a public local SSH tunnel, courtesy of localtunnel.

What's a "local tunnel"?

A local tunnel temporarily exposes your computer to the outside world through a single port. You can use a tunnel to share your work with far-flung colleagues or friends on another network. For more info, check out localtunnel.me.

Why would I need this?

At 18F we needed a reliable way to make our development environments visible to the outside world so that we can run cross-browser tests against live web applications. This tool allows us to expose web applications running on our own computers to services such as Sauce Labs and BrowserStack, which can run Selenium tests against them on multiple browsers. See below for some examples.

Installation

Grab npm if you don't have it, then run:

npm install -g localtunnel-runner

Usage

This package provides a single command-line tool, lt-run:

lt-run [options] [--] <test command>

All instances of the literal string `<url>` in your test command will
be replaced with the tunnel URL. For instance:

lt-run --port 8080 -- npm test -- --url="<url>"

lt-run --port 8000 -- nosetests --url="<url>"

The child process can also access the tunnel URL via the
$LOCAL_TUNNEL_URL environment variable.

Options:
  --port, -p     The local port you wish to expose on localtunnel.me
                                                           [default: 80]
  --local-host   The host you wish to expose      [default: "127.0.0.1"]
  --dry-run, -d  Just print the command to be run, for debugging
                 purposes                                               

How does it work?

lt-run is language-agnostic; you tell it which port to expose on localtunnel and give it a command to run, then it:

  1. launches a local SSH tunnel so your web app is visible at a randomly-generated URL in the form https://xxxyyyzzz.localtunnel.me;
  2. replaces any instance of <url> in the command arguments with the local tunnel URL; and
  3. executes the command and provides the URL in the LOCAL_TUNNEL_URL environment variable.

Examples

Node
lt-run --port 1337 -- \
  npm test -- --port 1337 --url "<url>"
Django + Selenium
lt-run --port 8081 -- \
  ./manage.py test selenium_tests --liveserver=localhost:8081