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

example-component-lib

v0.1.0

Published

an example setup for building a component lib with ReactJS

Downloads

3

Readme

Example Component Library

Up & Running

$ npm install or $ yarn

Overview

This component lib is set up to use styled-components and polished 💅. This is a starter for you to create your own components and easily publish them to npm.

File Structure

ELEMENTS

lib/elements is intended to contain your smallest reusable components, e.g. Buttons, Inputs, etc.

COMPONENTS

lib/components is intended to contain combinations of these elements, e.g. SearchField, DropDown, etc.

STYLES

lib/styles is inteded to contain your global styles that you would like to include throughout the application, e.g. colors, animations, themes, etc.

Local Development

Linter

NOTE: The linter will run against everything in the lib directory. I've added an initial .eslintrc file for some basic configuration. Feel free to edit or replace it as needed.

Run once:

$ npm run lint

Run the watch script:

$ npm run lint:watch

Tests

NOTE: As there are no components added by default, there are no tests. But the infrastructure is set up for you to run your tests. This app is setup to use Mocha, Enzyme, and Expect. The test script is looking for test files with a .spec.js extension, e.g. MyComponent.spec.js. Run once:

$ npm test

Run the watch script:

$ npm run test:watch

Build

NOTE: When you run build, Babel will create a build directory. This is what your users will interact with when they use your library. Nothing in lib gets shipped with your published module.

Run once:

$ npm run build

Run the watch script:

$ npm run build:watch

NOTE: the build script runs in the prepublish script just before you publish to npm.

Publishing

If you already have an account with npm, you can simply run:

$ npm login
$ npm publish

If you don't have an account with npm:

NOTE: Your email address is public

$ npm set init.author.name "Your Name"
$ npm set init.author.email "[email protected]"
$ npm set init.author.url "http://yourblog.com"
$ npm adduser
$ npm publish

Contributing

If you'd like to contribute to this app, please raise an issue and/or submit a pull request. Please be sure to follow the Code of Conduct when contributing.