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

@fransvilhelm/lambi

v2.0.0

Published

Run scripts in a lambda like env

Downloads

8

Readme

Lambi

Run commands in a docker like node environment

npm (scoped) Travis (.org)

Description

lambi is mainly a cli util used to run commands in a AWS Lambda like environment. It is useful if you're building you function locally before pushing it to AWS.

If you bundle your code locally you might end up with binaries being built for the wrong platform – e.g. you're doing dev and bundling on a mac and lambdas run in a more linuz like environment.

Installation

Install using npm or yarn, it will work both locally and globally.

$ npm install --save-dev @fransvilhelm/lambi
$ yarn add --dev @fransvilhelm/lambi

CLI usage

$ lambi yarn run build

lambi accepts a single argument which will run in the created lambda like environment.

Flags

--env, -e

Use the --env flag (alias -e) to send environment variables into the container.

$ lambi --env NODE_ENV=production -e STAGE=staging "yarn build"

--env-file

Use the --env-file flag to use a file of environment variables to send into the container.

.env:

API_KEY=123456789
SECRET=987654321
$ lambi --env-file .env "env"

--volume, -v

Use the --volume flag (alias -v) to mount a folder relative to the project root into the container.

$ lambi -v ./src "yarn test --watch"

This is useful if you for example want to get the built files where binaries are included.

$ lambi -v ./dist "ncc build src/index.ts -o dist/handler.js"

You could of course mount the working directory into the container using ., but that might lead to unexpected behaviour.

Chaining

If you like to chain arguments, e.g. build and deploy, you need to wrap the argument in quotes.

lambi "yarn run build && yarn run deploy"

Modules bin commands

Some node packages might also install programs to run from the command line, e.g. this package installs a lambi program into ./node_modules/.bin/lambi.

When using scripts in package.json these programs can be run without writing out the relative path. The same goes for scripts running inside the container created by lambi. This is because we add the path ./node_modules/.bin to the PATH variable.

This means that you can run any program installed locally by npm or yarn without the relative path:

# Instead of this
$ lambi ./node_modules/.bin/jest
# You can do this
$ lambi jest

License

MIT (c) Adam Bergman 2019