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

gdu

v11.3.0

Published

AutoGuru's development toolkit

Downloads

286

Readme

gdu

AutoGuru's MicroFrontend Development Utility.


Quickly get up and running by bootstrapping a new mfe into our internal repos. GDU will for the large part be zero-config, and 100% transparent. 1 dependency "gdu": "latest", is all you'll need. But does open up escape hatches for 100% configurability on a similar vein as webpack, using tapable.

This tool has been heavily inspired by:

Getting Started

Creating a new MFE:

yarn create guru <spa|ssr> <app_name>
# or
volta install gdu
gdu scaffold <spa|ssr> <app_name>

CLI usage:

  Usage
    $ gdu <command> [options]

  Available Commands
    scaffold          Creates a new gdu project
    configure         Sets up the gdu project, creating tsconfig gitignore files etc..
    start             Starts a development server
    build             Builds the target app ready for production
    format            Runs prettier over the current tree

For a project to be considered a gdu project. It must contain a guru.config.js. This file should export the following config:

interface GuruConfig {
	type: 'spa' | 'ssr'; // Is set for you during scaffold.
	isRoot?: boolean; // When set is mainly for workspace roots, and other things. Advanced Usage.
	port?: number; // When starting, or running, use this port (default: 8080)
	publicPath?: string; // When deployed where to go find static assets (default: /)
	outputPath: string; // Where to build assets too (defualt-ssr: .next, default-spa: dist)
	srcPaths?: string[]; // Where file sources are located (default-ssr: {pages,components,scenes}, default-spa: src)

	// You can use this tap to hook into various parts of the flow, see below.
	tap?(hooks: Record<string, Hook>): void;
}

Hooks

  • webpackConfig(config) - After we have resolved a webpack config, but before we use it.
  • beforeServer(server) - After we have initialized a new polka server, but before default routes kick in, mainly used to inject middleware.
  • afterServer(server) - After we have injected all middleware, default routes.
  • beforeNextJSPrepare(app) - Before we run nextjs.prepare(), but after nextjs.getRequestHandler()
  • afterNextJSConfig(config) - After default nextjs config has been resolved to be sent forward into nextjs.
  • babelConfig(config) - After babel config has been resolved, but before it's used.