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

@beemo/dev

v2.1.2

Published

Official Beemo configuration module for modern local development.

Downloads

4,032

Readme

Beemo - Development configuration module

Build Status npm version npm deps

An official TypeScript-only "batteries included" Beemo configuration module that provides pre-packaged configs for the Babel, ESLint, Jest, Prettier, and TypeScript drivers and developer tools.

yarn install --dev @beemo/dev

Requirements

  • Source files are in a folder called src.
  • Tests files are in a folder called tests relative to source, or __tests__ within source.
  • Declaration/types files are in a folder called types relative to source.
  • Custom TypeScript paths should start with : instead of @ to avoid NPM supply chain attacks.

Setup

Create a .config/beemo.ts file in the root of your project that configures @beemo/dev as the configuration module. Be sure to enable all drivers and any settings.

// .config/beemo.ts
export default {
	module: '@beemo/dev',
	drivers: ['babel', 'eslint', 'jest', 'prettier', 'typescript'],
	settings: {},
};

Settings

The following Beemo settings can be defined and will be passed to applicable drivers.

  • decorators (boolean) - Enable decorators for Babel and TypeScript drivers. Defaults to false.
  • esm (boolean) - Enable ECMAScript module "mode" for tools that support it (Babel, Jest, etc).
  • node (boolean) - Current project will target Node.js instead of the browser. Defaults to false.
  • projects (boolean | string[]) - Enable Jest projects. If true is passed, will be resolved using workspaces, otherwise requires an array of explicit strings. Defaults to false.
  • react (boolean | classic | automatic) - Enable React and JSX support for all drivers. Defaults to false.

Overrides

If you would like to override a driver config, create a .config/beemo/<driver>.ts file in the root of the project. View the official Beemo docs for more information.

// .config/beemo/eslint.ts
export default {
	rules: {
		'no-param-reassign': 'off',
	},
};

Drivers

The following drivers are directly supported in this configuration module, and automatically passed common command line options when being ran.

  • Babel
    • Always passes --copy-files.
    • Sets --extensions to all JS/TS extensions.
    • If no out provided, defaults to src/ --out-dir lib/.
  • ESLint
    • Always passes --cache --color --fix.
    • Sets --extensions to all JS/TS extensions.
    • If no target provided, defaults to linting src/ tests/.
    • If using workspaces, will target the above in each package.
    • Generates Prettier and TypeScript configs when enabled.
  • Jest
    • Always passes --colors --logHeapUsage.
    • Sets NODE_ENV=test and TZ=UTC.
    • Generates a Babel config when enabled.
    • Supports projects through the projects setting.
  • Prettier
    • If no args provided, defaults to --write ..
    • Provides a default ignore list of common files.
  • TypeScript
    • Modern/next ECMAScript support.
    • Type-checking only.

Please refer to their documentation for more information on how each one is configured.

Scaffolds

Once your project has been configured to use Beemo, you can scaffold specific files using our built-in templates.

project/dotfiles

Will scaffold common dotfiles like .gitignore.

beemo scaffold project dotfiles

project/github

Will scaffold GitHub repository workflow files to .github. Supports the following workflows:

  • build - Builds, tests, lints, and type checks the project on each pull request and master merge. Also verifies Packemon packing and Docusaurus building passes.
  • deploy - Deploys a Docusaurus website on each master commit. Requires GH_USER and GH_PAGES_DEPLOY secrets.
  • pr - Validates a pull request title using the conventional-changelog-beemo preset.
beemo scaffold project github

project/package

Will append fields to the root package.json.

  • Adds scripts for common actions like building, linting, testing, etc.
  • When passed --workspaces, sets private and workspaces to packages/*.
beemo scaffold project package

workspace/package

Will scaffold a new package into a packages workspace. Creates CHANGELOG.md, README.md, LICENSE, and package.json files.

beemo scaffold workspace package --owner milesj --repo aesthetic framework