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

smoke-pack

v0.8.1

Published

A project provisioning and build system for browser, electron, node and wasm projects.

Downloads

3

Readme

Smoke-Pack

A npm project provisioning and build system for browser, electron, node and library projects.

NPM package

npm install smoke-pack -g
smoke-pack add app electron
smoke-pack add lib library
smoke-pack link app lib
smoke-pack watch app

Overview

Smoke-Pack is a project provisioning and build system tool for npm packages and applications. It provides a set of core templates for provisioning browser, electron, node and library projects with each setup ready for npm publishing. Additionally, this tool provides build infrastructure for cross linking, building and watching projects managed within a single workspace.

This tool was primarily written to allow for locally developed libraries to be seemlessly linked and shared across browser, electron and node applications.

All project templates are written in TypeScript and all support direct linking via npm link, each project is configured to support incremental build workflows with TypeScript's --watch option.

Options


$ smoke-pack <command> <...args>

Options: smoke-pack create <name> <type>
         smoke-pack add    <name> <type>
         smoke-pack remove <name>
         smoke-pack link   <name> <dependency>
         smoke-pack unlink <name> <dependency>
         smoke-pack clean  <name>
         smoke-pack build  <name>
         smoke-pack watch  [...<names>]
         smoke-pack start  <name>
         smoke-pack test   <name>
         smoke-pack pack   <name>
         smoke-pack run    <name> <script>
         smoke-pack list

Project Types

Smoke-Pack provides project templates for the following project types.

Command | Description --- | --- smoke-pack create my-lib library | linkable npm package library. | smoke-pack create my-app console | node console application. | smoke-pack create my-app browser | browser application w/ webpack | smoke-pack create my-app electron | electron application | smoke-pack create my-app empty | pure node + javascript console project. |

Project Commands

The Smoke-Pack cli provides a number of command line options for linking and building projects. Each command will call into a projects tasks.js file and run one of its clean, build, watch, start, test and pack operations to carry out various build tasks. Custom projects can be added by implementing the task interface below.

Command | Description --- | --- smoke-pack create <name> <type> | creates a standalone project in the current working directory. | smoke-pack add <name> <type> | creates a new project in the ./packages/<name> directory. | smoke-pack remove <name> | removes a project from the ./packages/<name> directory. | smoke-pack link <name> <dependency> | links the <dependency> to the given project <name> | smoke-pack unlink <name> <dependency> | unlinks the <dependency> from the given project <name> | smoke-pack clean <name> | cleans the project, deleting node_modules and build artifacts. | smoke-pack build <name> | builds a project in ./packages/<name>/public/bin. | smoke-pack watch <name> | builds and watches a project in ./packages/<name>/public/bin. | smoke-pack start <name> | builds and starts a project in ./packages/<name>/public/bin. | smoke-pack test <name> | tests the project on ./packages/<name>/public/test. | smoke-pack pack <name> | builds a redistributable in ./packages/<name>/public/pack. | smoke-pack run <name> <script> | runs custom npm scripts in ./packages/<name>/package.json. | smoke-pack list | lists projects and dependencies managed by this tool. |

Task Interface

Smoke-Pack mandates that all projects implement a common set of tasks which are run via npx or npm script. The tasks provided by this project are written with the smoke-task npm package which runs a tasks.js file located in the project root. The following outlines the high level role of each task.

Task | Description --- | --- clean | Should clean out all build artifacts incl install dependencies. | build | Should build the entirety of the project and write artifacts to public/bin | build_conditional | Should build as above but only if not already built. | start | Should build_conditional then run the project. | watch | Should build_conditional then watch / incremental and start. | test | Should build and test the project with artifacts written to public/test | pack | Should build and produce redistributable in public/pack |

For example implementations of the above interface, run smoke-pack create for one of the project templates provided with this project.

Project Tasks

This project provides the following build tasks.

npm run clean       # cleans this project
npm run build       # builds this project
npm run pack        # builds via npm pack.
npm run install_cli # install smoke-pack locally.
npm run watch       # watches / install smoke-pack on save.