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

@goodeggs/toolkit

v8.0.0

Published

Development toolkit containing common scripts for Good Eggs modules and applications.

Downloads

1,882

Readme

@goodeggs/toolkit

Build Status

Development toolkit providing scripts for building, linting, testing, and other common tasks Good Eggs modules and applications.

The Problem

Bootstrapping a single project with development dependencies for linting, testing, and building is a painful problem. Keeping those dependencies up to date and making sure you're following current best practices (across all projects!) is even more time consuming.

This Solution

@goodeggs/toolkit is a single development dependency that abstracts away linters, test tooling, and other scripts you would otherwise duplicate across projects. It includes all dependencies it needs to run (so you don't need to install, for example, eslint to make linting work).

Installation

Install via yarn:

yarn add --dev @goodeggs/toolkit

For setup instructions, see SETUP.md.

Usage

These scripts are intended to be run via yarn run or npm run and replace your current build scripts.

For example, to replace a script that lints JavaScript files, you might make the following changes to your project's package.json#scripts:

  {
    "scripts": {
-     "lint:es": "eslint --ext js,jsx,ts,tsx --ignore-pattern '!.*rc.js' --ignore-path .gitignore .",
+     "lint:es": "getk run lint-es",
    }
  }

Note: getk is designed to be run from the root of your project. Running it via yarn or npm guarantees this; if you run getk explicitly, keep this in mind.

Command Reference

For a full listing of scripts, run getk run --help or check out the commands directory.

Development

This project is built in TypeScript and must be rebuilt via yarn run build whenever any changes are made.

This project includes itself as a dependency (check out package.json#dependencies). That means that when you're working on it, whenever you make changes you'll need to update the copy installed to node_modules/@goodeggs/toolkit. The easiest way to do this is to link the package into itself by running yarn link ; yarn link @goodeggs/toolkit.

If you're making more than a small change, it's recommended you set up a watch task to rebuild the project continuously. The following example uses Watchman (brew install watchman) to do so:

watchman-make -p 'src/**/*.ts' 'src/**/*.js' 'package.json' -r 'yarn run build'

Releasing

To release a new version of this module, use yarn to bump the version in package.json and create a git tag, then push. This will automatically get published to the NPM registry via CI.

yarn version --new-version=<major|minor|patch|premajor|preminor|prepatch>
git push --follow-tags

This project populates the changelog from commit messages via conventional commits. To make this work, commit format is enforced via conventional commits via commitlint. See the conventional commits and commitlint documentation for more information.

To populate the changelog automatically, generate a GitHub token and set CONVENTIONAL_GITHUB_RELEASER_TOKEN in your environment. Next, run:

yarn run release

Debugging

Something unexpected happening? Enable debugging output to see what's going on inside getk:

DEBUG=goodeggs-toolkit* getk <...>

Credits

Inspired heavily by: