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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@hydroperx/webpack

v1.0.9

Published

Web project development tool.

Readme

Webpack

An easier version of the Webpack development tool with built-in features:

  • Project creation
  • TypeScript
  • JSON import (.JSON)
  • Cascadings style sheet import (.CSS, .SASS, .SCSS)
  • Media import such as import _img_ef from "a.svg";
  • A world wide web root /static directory
  • An optional .env file (import.meta.env.X)

Vantages over other bundlers:

  • Support for the browser field in the NPM manifest

Minimal projects have only two direct development dependencies: typescript and @hydroperx/webpack.

Installation

# global
npm i -g @hydroperx/webpack
# local
npm i @hydroperx/webpack

Creating a project

Create a vanilla TypeScript web project:

webpack new --vanilla hello-world

Create a React + TypeScript web project:

webpack new --react hello-world

Debugging a project

webpack run
# or
npm run dev

Building a project

# debug build
webpack build
# release build
webpack build --release

# or
npm run build
npm run build -- --release

Configuration

The configuration file webpack.json may be included in the project.

{
    "entry": "./src/index.ts",
    "document": "./src/index.html"
}

Supported options

| Option | Description | | -------------------- | --------------------- | | entry | The entry point program. (.ts, .tsx). Defaults to either ./src/index.tsx or ./src/index.ts. | | document | The entry point hypertext document (.html). Defaults to ./src/index.html |

Importing media

Allow importing media in your project by adding a .d.ts file declaring the file extension modules, such as:

declaration.d.ts

declare module "*.png";

.png files can then be imported as in:

import _png0 from "./example.png";

If the media is of small size, it is included directly as a base64 data URL.

Supported file formats

PNG/JPG/JPEG/GIF/SVG/WEBP/MP4/MP3/WOFF/WOFF2/EOT/TTF/OTF

Accessing environment variables

Allow using environment variables from the project's .env file by adding a .d.ts file overriding the ImportMeta interface:

env.d.ts

interface ImportMetaEnv {
    readonly EXAMPLE: string;
}
  
interface ImportMeta {
    readonly env: ImportMetaEnv;
}

import.meta.env.EXAMPLE then refers to the EXAMPLE variable.

The world wide web root

Insert public files into the web project's root by adding them to the <project>/static directory, which is the world wide web root.

For instance:

<project>/static/favicon.png
<project>/static/style.css

Importing cascading style sheets

The following will import a cascading style sheet statically into the document:

import "./style.css";

Supported file formats

CSS/SASS/SCSS

Importing JSON

The following will import a JSON file statically:

import data from "./data.json";

Supported file formats

JSON/GEOJSON

Browser manifest field

The NPM manifest (package.json) may specify the browser field, commonly used for disabling certain Node.js specific modules and for replacing Node.js compatible sources by browser compatible sources (.ts extensions included).

Manifest example

{
  "name": "hello-world",
  "version": "0.1.0",
  "browser": {
    "./src/module.nodejs.ts": "./src/module.web.ts"
  }
}