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

bates

v3.5.2

Published

Front-end butler for React projects

Downloads

68

Readme

Bates

The contemporary front-end stack and build pipeline is a very opinionated place, with lots of choices for a lot of different setups.

Bates is a build config as a dependency, to help automate a specific set of choices for React front-end projects.

Quick start

Bates needs node >= 5 and npm >= 3.3

# check the versions
$ node -v && npm -v
# update if necessary
# use nvm to help you manage node versions https://github.com/creationix/nvm
$ nvm i node # update node
$ npm i npm -g # update npm

Create a new project

$ mkdir my-project # create project folder
$ cd my-project # get into folder
$ npm init # setup npm for the project

Install and run Bates

$ npm i bates -S # install and save bates
$ npm run bates -- template # create base files

$ npm start # start dev server.
# The dev server hot reloads the components, run tests and lint on change.
# Hit `ctrl+c` to close.

Base files:

  • Site entry point is on src/main.js, theme and routes are defined there.
  • Entry component loaded by the template route is on src/Home.js.
  • Package entry point for when releasing projects as npm modules is on src/index.js.
  • Bates uses Stijl for the UI components of his template.

When you want to deploy the site run:

npm run bates -- deploy
# follow the prompt, choose your domain
# the site will be available at http://yourDomain.surge.sh

For information on setting up Travis continuous deploy/releases see: travis setup

Folder Structure

my-project/
  dist/ # site files go here
    200.html
    bundle.js # bundle is generated by webpack
  node_modules/
  lib/ # transpiled files from src, for releasing project as a npm pckg
    index.js
  src/
    index.js # npm pckg entry point
    main.js # site entry point
    *.test.js # colocated tests

API

Bates adds its script to the package.json file. So that from the project folder he can be executed as npm run bates -- <args>.
Pay attention to the space after the double dash.

Development

npm run bates -- template
If missing, add some base files to your project.

npm run bates -- start
Prune and update your dependencies.
Start a hot-reloaded, babel transpiled, server at localhost:3000.
Run tests and lint on change.
Tell you about your outdated packages, your last release and what have changed until now.
Alias: npm start.

npm run bates -- server
Run just the server from the start command.
The server defaults to port 3000, when the port is not available it uses the next one.
A PORT env var can also be passed. Eg: PORT=8080 npm run bates -- server

npm run bates -- test
Test and lint your /src. Test files need to be named *.test.js.
Alias: npm test.

npm run bates -- testWatch
Same as above, but for every time the source changes.

npm run bates -- cov
Run the test coverage and open a browser with the results.

Site deployment and package releases

npm run bates -- bundle
Generate a bundle file from /src/main.js on the /dist folder, for when you want to deploy your code as a website.

npm run bates -- deploy
Generate a bundle file from /src/main.js on the /dist folder and deploy that folder to surge.sh.
If you add a CNAME file, you don't need to fill any prompts here.

npm run bates -- bundleSize
Generate an analysis of the bundle size.

npm run bates -- lib
Transpile the code from /src to /lib, for when you want to release the code as a npm package.

npm run bates -- release
This command is aimed at automating releases on a CI server.
Using your git commit messages, check for the changes since your last release and suggest a new version. If approved, bump the package and push a new tag.

npm run bates -- githubRelease
This command should be used on TravisCI, after a release. Create release notes since your last release, using your git commit messages. Do a release on your github project.
Travis need to have a GIT_TOKEN environment variable set up with your project token.

npm run bates -- clean
Delete all build and transpiled files.