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

@webeferen/buildable

v1.4.2

Published

Workspace linking tool on steroids.

Downloads

7

Readme

Buildable

Tests Npm Version Downloads License

Link your local repositories and dependencies quickly, without any additional knowledge.

Installation

Buildable is made to work with each of installation type such as local, global and npx. It is using pnpm to install and manage dependencies. Use .npmrc file to configure this package manager.

Local scope

npm install --save-dev @webeferen/buildable

Global scope

npm install --global @webeferen/buildable

It can be also used via npx

npx @webeferen/buildable [command]

Getting Started

Buildable itself is a CLI tool that doesn't require any additional configuration to run successfully. To get the smoothest experience the recommended way is by doing following steps:

  • Call buildable init method to create metadata files;
    • Modify .buildable to the state that fits the usecase;
    • Modify pnpm-workspaces.yaml if needed - default is packages/*;
  • Run buildable install to make sure that every dependency is installed and linked;
  • Run desired commands by typing buildable run XYZ;

Commands

buildable [command] (...options)

Help

This command prints out useful information such as available commands and options.

buildable help

Prints out currently used version of the package

buildable --version

Init

This command generates configuration files which allows modifications to be applied. It will also generate pnpm-workspaces.yaml file if workspace flag is set to true.

buildable init (...options)

Install

This command installs and links packages. Under the hood it is using either pnpm-workspaces if workspaces is set or pnpm install in each project.

buildable install (...options)

Run Script

This command runs specified command for each project inside directory.

buildable run (r) "script name" (...options)

Dependency Graph

This command generates dependency graph with every dependency inside workspace (linking them with correct versions). Graph only shows relations between local dependencies.

buildable dependency-graph (dg) (...options)

Execution Order

This command generates execution order in which projects should be run to avoid build order issues. It only takes into consideration local dependencies.

buildable execution-order (eo) (...options)

Available options

  • --listeners (-l) List of comma separated texts when achieve next process can be run (regex check)
  • --only (-o) List of comma separated projects that will only be run (with their dependencies)
  • --exclude (-e) List of comma separated packages which should be excluded
  • --path (-p) Relative path to the directory containing workspace (if any)
  • --config (-c) Relative path to the configuration file
  • --reload (-r) List of comma separated packages which can be manually reloaded
  • --workspace (-w) Sets buildable in workspace mode (default: true)
  • --no-safe Disables safe mode for running without dependencies

Example configuration

Example configuration can be found here.

Possible issues

There were some cases where buildable was not able to kill child process by itself. If that happens, this command might help to clean the ports up:

kill -9 $(lsof -ti:[port])

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT