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

nextlevel

v0.0.1

Published

Skeleton build tool learning using: lerna monorepo, webpack2, nodejs, hot reloader 3, react router 4, preact, jsdom, enzyme, babel6 loader, async extension point bootstrap, flowtypes, eslint autofixing...

Downloads

4

Readme


nextlevel


Build Status

A month ago, my colleague Mario Scheliga asked me what goals I wanted to achieve before the year ends. I told him I wanted to level up my build tool skills. So in my free time, I started defining what “leveling up my build tool skills” meant.  After doing some experimentation & research with him, I wrote out a list:

monorepo

  • [ ] [~] modularized lerna monorepo
  • [ ] travis + docker staging deploying (with only one easy command, deploy at will, simultaneous or sequentially)
  • [x] flowtypes (reusable across projects) -> [x] cli test running
  • [x] eslint (reusable across projects)
  • [x] aliasing, helpers, async startups across projects
  • [x] benchmarks

backend

  • [x] express 5
  • [x] nodejs 6.9.1
  • [x] nodejs 7.1
  • [ ] [~] (simultaneous) hot reloading dev+test server(s) in one cli (works but haven’t added second backend)
  • [x] es6 + webpack2 + babel
  • [x] point cut routing setup
  • [ ] [~] hot route analysis to be used for code chunking least|most used routes
  • [x] sharable di & configs

frontend

  • [x] hot reloading 3
  • [x] point cut routing setup
  • [x] react 15.4.1 & react router 4~
  • [x] es6 + webpack2 + babel
  • [x] jsdom + enzyme + mocha test suite
  • [x] preact for development & production

step 1

  • [x] set up build system (resolve with helpers etc)
  • [x] make test pass
  • [x] run webpack when testing, keep it in memory, that we we don't have to build every time? (more difficult than it seems)
  • [x] how to do backend with es6
  • [x] can do express routes with plugins as well?
  • [x] config & db should be on DI
  • [x] run test suite with mocha + webpack + babel (more difficult than it seems)
  • [x] load plugins in nodejs (more difficult than it seems)
  • [x] eslint plugin setup

step 2

  • [x] set up configs extending each other
  • [x] ensure lerna works properly

step 3

  • [x] knexdb setup migrations - could just use pg straight up no knex #noknex (opted for couchdb b/c ease of use)
  • [x] set up running server with webpack & running built system
  • [x] use babel6
  • [x] uglify production
  • [x] uglify front end production
  • [x] reuse configs
  • [x] fix WARNING in ... Critical dependencies: ... require function is used in a way in which dependencies cannot be statically extracted
  • [x] add backend hot reloading SERVER setup

step 4

  • [x] use webpack 2
  • [x] add flowtypes initially for documentation only
  • [x] test flowtypes
  • [x] add hot reloading 3
  • [x] add tests to front end
  • [x] route logging & detecting hot routes for automatic code chunking the hot routes (pt 1 middleware logging)

step 5

  • [x] add react routing
  • [x] add a component as a route
  • [x] use react router 4
  • [x] base babel query loader generator
  • [x] simplify xtpoint invokation

step 7

  • [x] make xtpoint invokation safe - might need to add another function EITHER
  1. ~~add flag to .point(ns, context)~~
  2. ~~add method invokeFor~~
  3. ~~add method apply -> would require changing exec too (could do applyExec)~~
  4. [x] change the signature, if first argument is object it is the context <- THIS
  • [x] async wrapper IN xtpoint invoking routing wrapper? like in whitelists
  • [x] reusable core for both backends -> split CONFIGS

step 8

  • [x] fix .gitignore RTFM
  • [x] read about lerna/monorepo deployment

step 9

  • [ ] benchmarks for backend
  • [ ] real benchmarks
  • [ ] fix tests not stopping watching on their own

step 10

  • [ ] write a blog post

step 11

  • [x] add custom syntax with sweet.js 2
  • [x] add a custom webpack loader for it
  • [x] express 5
  • [x] eslint flowtypes
  • [ ] build sweetjs files from .sjs to .js before the rest
  • [ ] maybe add an atom plugin for compiling and saving sugarjs files on save like so many do with CoffeeScript

next steps

  • [ ] worker
  • [ ] i18n
  • [ ] docker
  • [ ] package manager
  • [ ] move reusable deps like underscore to root (issue with lerna)
  • [ ] later, add second backend
  • [ ] test code coverage