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 🙏

© 2026 – Pkg Stats / Ryan Hefner

react19-compat-linter

v1.2.0

Published

Utility to validate project depedencies are React 19 compatible

Readme

react19-compat-linter

React 19 removes several deprecated APIs that were available in React 18 and earlier (ReactDOM.render, findDOMNode, etc.) Before upgrading to React 19, you need to remove these from your code—you might use a lint rule for this. But you also need to make sure that all bundled dependencies are clean—and this problem is much harder.

This package solves this by providing a utility to scan your dependencies to identify compatibility issues. At a high level, it is composed of two parts: (1) a webpack plugin that emits a list of modules to lint, and (2) a utility that runs ESLint over those modules and reports on incompatible packages.

Why split the functionality like this? While webpack is the most common bundler, you may be using something else. By decoupling the linting from the bundler, you can produce your own module list and still reuse the linting functionality. And linting is slow; you may want to separate it from your webpack process anyway.

Getting Started

1. Install the package

# NPM
npm install --save-dev react19-compat-linter

# Yarn
yarn add --dev react19-compat-linter

2. Configure the webpack plugin

Add the DependencyModuleListPlugin to your webpack configuration to extract a list of all modules used in your build:

const { DependencyModuleListPlugin } = require('react19-compat-linter');
const outputFile = './modules-list.json';

module.exports = {
  // ... your webpack config
  plugins: [
    new DependencyModuleListPlugin(outputFile)
  ]
};

When you run webpack, this plugin will generate a JSON file containing all bundled JavaScript (or TypeScript) modules from packages in the node_modules directory.

3. Run the linter

You can run the linter via the command line:

npm react19-compat-linter ./modules-list.json

Or integrate it into your build via the API:

const { runLinter } = require('react19-compat-linter');

runLinter('./modules-list.json').then(result => {
  console.log(`Found violations in ${result.packages.length} packages.`);
});