---
url: /docs/replacements.md
---
# Replacements

When using the [e18e ESLint plugin](https://github.com/e18e/eslint-plugin) or the [CLI](https://github.com/e18e/cli), you may be suggested replacement modules for dependencies you have. This is a list of replacements, along with their migration guides and any useful information.

> \[!NOTE]
> The e18e ESLint plugin replaces [eslint-plugin-depend](https://github.com/es-tooling/eslint-plugin-depend) and includes its module-replacement functionality (the `ban-dependencies` rule), as well as many other performance related rules.

## What are these?

The e18e community maintains a list of modules and their recommended replacements via the [module-replacements](https://github.com/e18e/module-replacements) repository.

Typically, a module might be flagged as replaceable if it:

* Is no longer actively maintained
* Has more performant or modern alternatives
* Has known security vulnerabilities
* Lacks support for modern JavaScript features (e.g. ES Modules, TypeScript)

Where it was not possible to contribute upstream to the existing modules, replacement modules have been created by the wider community in most cases.

## List of replaceable modules

> \[!NOTE]
> This is not an exhaustive list - similar modules to the ones listed here can often be replaced by roughly the same steps.

| Module                                                                | Auto-fixable            |
| --------------------------------------------------------------------- | ----------------------- |
| [`@jsdevtools/ez-spawn`](./ez-spawn.md)                               | :x:                     |
| [`axios`](./fetch.md)                                                 | :x:                     |
| [`bcrypt`](./bcrypt.md)                                               | :x:                     |
| [`better-auth-cli`](./better-auth-cli.md)                             | :x:                     |
| [`bluebird`](./bluebird-q.md)                                         | :x:                     |
| [`body-parser`](./body-parser.md)                                     | :x:                     |
| [`buf-compare`](./buf-compare.md)                                     | :x:                     |
| [`buffer-equal`](./buffer-equal.md)                                   | :x:                     |
| [`buffer-equal-constant-time`](./buffer-equal-constant-time.md)       | :x:                     |
| [`buffer-equals`](./buffer-equals.md)                                 | :x:                     |
| [`builtin-modules`](./builtin-modules.md)                             | :x:                     |
| [`chalk`](./chalk.md)                                                 | :ballot\_box\_with\_check: |
| [`clean-webpack-plugin`](./clean-webpack-plugin.md)                   | :x:                     |
| [`cli-builders`](./cli-builders.md)                                   | :x:                     |
| [`clipboardy`](./clipboardy.md)                                       | :x:                     |
| [`collection-map`](./collection-map.md)                               | :x:                     |
| [`concat-stream`](./concat-stream.md)                                 | :x:                     |
| [`core-util-is`](./core-util-is.md)                                   | :x:                     |
| [`cosmiconfig`](./cosmiconfig.md)                                     | :x:                     |
| [`cpx`](./cpx.md)                                                     | :x:                     |
| [`create-hmac`](./create-hmac.md)                                     | :x:                     |
| [`cross-spawn`](./cross-spawn.md)                                     | :x:                     |
| [`crypto-js`](./crypto-js.md)                                         | :x:                     |
| [`css-loader`](./css-loader.md)                                       | :x:                     |
| [`cwd`](./cwd.md)                                                     | :x:                     |
| [`debug`](./debug.md)                                                 | :x:                     |
| [`deep-equal`](./deep-equal.md)                                       | :ballot\_box\_with\_check: |
| [`deep-merge`](./deep-merge.md)                                       | :x:                     |
| [`depcheck`](./depcheck.md)                                           | :x:                     |
| [`desm`](./desm.md)                                                   | :x:                     |
| [`detect-package-manager`](./detect-package-manager.md)               | :x:                     |
| [`dev-null`](./dev-null.md)                                           | :x:                     |
| [`dot-prop`](./dot-prop.md)                                           | :x:                     |
| [`dotenv`](./dotenv.md)                                               | :x:                     |
| [`duplexer`](./duplexer.md)                                           | :x:                     |
| [`emoji-regex`](./emoji-regex.md)                                     | :x:                     |
| [`error-stack-parser`](./error-stack-parser.md)                       | :x:                     |
| [`eslint-config-airbnb`](./eslint-config-airbnb.md)                   | :x:                     |
| [`eslint-plugin-es`](./eslint-plugin-es.md)                           | :x:                     |
| [`eslint-plugin-eslint-comments`](./eslint-plugin-eslint-comments.md) | :x:                     |
| [`eslint-plugin-import`](./eslint-plugin-import.md)                   | :x:                     |
| [`eslint-plugin-node`](./eslint-plugin-node.md)                       | :x:                     |
| [`eslint-plugin-react`](./eslint-plugin-react.md)                     | :x:                     |
| [`eslint-plugin-vitest`](./eslint-plugin-vitest.md)                   | :x:                     |
| [`event-stream`](./event-stream.md)                                   | :x:                     |
| [`execa`](./execa.md)                                                 | :x:                     |
| [`express`](./express.md)                                             | :x:                     |
| [`extend`](./extend.md)                                               | :x:                     |
| [`ez-spawn`](./ez-spawn.md)                                           | :x:                     |
| [`faker`](./faker.md)                                                 | :x:                     |
| [`fast-glob`](./fast-glob.md)                                         | :x:                     |
| [`feather`](./feather.md)                                             | :x:                     |
| [`find-cache-dir`](./find-cache-dir.md)                               | :x:                     |
| [`find-cache-directory`](./find-cache-directory.md)                   | :x:                     |
| [`find-file-up`](./find-file-up.md)                                   | :x:                     |
| [`find-pkg`](./find-pkg.md)                                           | :x:                     |
| [`find-process`](./find-process.md)                                   | :x:                     |
| [`find-up`](./find-up.md)                                             | :x:                     |
| [`fs-extra`](./fs-extra.md)                                           | :x:                     |
| [`get-stream`](./get-stream.md)                                       | :x:                     |
| [`glob`](./glob.md)                                                   | :x:                     |
| [`globby`](./globby.md)                                               | :x:                     |
| [`graphemer`](./graphemer.md)                                         | :x:                     |
| [`graphviz`](./graphviz.md)                                           | :x:                     |
| [`gray-matter`](./gray-matter.md)                                     | :x:                     |
| [`gzip-size`](./gzip-size.md)                                         | :x:                     |
| [`has-yarn`](./has-yarn.md)                                           | :x:                     |
| [`html-minifier`](./html-minifier.md)                                 | :x:                     |
| [`http-proxy`](./http-proxy.md)                                       | :x:                     |
| [`img-colour`](./img-colour.md)                                       | :x:                     |
| [`inherits`](./inherits.md)                                           | :x:                     |
| [`invariant`](./invariant.md)                                         | :x:                     |
| [`is-builtin-module`](./is-builtin-module.md)                         | :ballot\_box\_with\_check: |
| [`is-path-in-cwd`](./is-path-in-cwd.md)                               | :x:                     |
| [`is-path-inside`](./is-path-inside.md)                               | :x:                     |
| [`is-utf8`](./is-utf8.md)                                             | :x:                     |
| [`istanbul-lib-coverage`](./istanbul-lib-coverage.md)                 | :x:                     |
| [`istanbul-lib-instrument`](./istanbul-lib-instrument.md)             | :x:                     |
| [`jQuery`](./jquery.md)                                               | :x:                     |
| [`js-yaml`](./js-yaml.md)                                             | :x:                     |
| [`jsonwebtoken`](./jsonwebtoken.md)                                   | :x:                     |
| [`jsx-ast-utils`](./jsx-ast-utils.md)                                 | :x:                     |
| [`lodash-underscore`](./lodash-underscore.md)                         | :x:                     |
| [`materialize-css`](./materialize-css.md)                             | :x:                     |
| [`md5`](./md5.md)                                                     | :ballot\_box\_with\_check: |
| [`micromatch`](./micromatch.md)                                       | :x:                     |
| [`mime`](./mime.md)                                                   | :x:                     |
| [`mississippi`](./mississippi.md)                                     | :x:                     |
| [`mkdirp`](./mkdirp.md)                                               | :x:                     |
| [`mockdate`](./mockdate.md)                                           | :x:                     |
| [`moment`](./moment.md)                                               | :x:                     |
| [`node-telegram-bot-api`](./node-telegram-bot-api.md)                 | :x:                     |
| [`npm-check`](./npm-check.md)                                         | :x:                     |
| [`npm-run-all`](./npm-run-all.md)                                     | :x:                     |
| [`object-hash`](./object-hash.md)                                     | :x:                     |
| [`open`](./open.md)                                                   | :x:                     |
| [`ora`](./ora.md)                                                     | :x:                     |
| [`parseargs`](./parseargs.md)                                         | :x:                     |
| [`path-exists`](./path-exists.md)                                     | :x:                     |
| [`path-root`](./path-root.md)                                         | :x:                     |
| [`pbkdf2`](./pbkdf2.md)                                               | :x:                     |
| [`pkg-dir`](./pkg-dir.md)                                             | :x:                     |
| [`portal-vue`](./portal-vue.md)                                       | :x:                     |
| [`portfinder`](./portfinder.md)                                       | :x:                     |
| [`qs`](./qs.md)                                                       | :x:                     |
| [`react-helmet`](./react-helmet.md)                                   | :x:                     |
| [`read-package-up`](./read-package-up.md)                             | :x:                     |
| [`read-pkg`](./read-pkg.md)                                           | :x:                     |
| [`read-pkg-up`](./read-pkg-up.md)                                     | :x:                     |
| [`readable-stream`](./readable-stream.md)                             | :x:                     |
| [`resolve`](./resolve.md)                                             | :x:                     |
| [`rimraf`](./rimraf.md)                                               | :x:                     |
| [`rollup-plugin-terser`](./rollup-plugin-terser.md)                   | :x:                     |
| [`schema-validation`](./schema-validation.md)                         | :x:                     |
| [`semver`](./semver.md)                                               | :x:                     |
| [`shortid`](./shortid.md)                                             | :x:                     |
| [`slice-ansi`](./slice-ansi.md)                                       | :x:                     |
| [`sort-object`](./sort-object.md)                                     | :x:                     |
| [`source-map-explorer`](./source-map-explorer.md)                     | :x:                     |
| [`split`](./split.md)                                                 | :x:                     |
| [`sqlite3`](./sqlite3.md)                                             | :x:                     |
| [`stream-buffers`](./stream-buffers.md)                               | :x:                     |
| [`string-width`](./string-width.md)                                   | :x:                     |
| [`strip-ansi`](./strip-ansi.md)                                       | :x:                     |
| [`tar-fs`](./tar-fs.md)                                               | :x:                     |
| [`tempy`](./tempy.md)                                                 | :x:                     |
| [`through`](./through.md)                                             | :x:                     |
| [`timezone-support`](./timezone-support.md)                           | :x:                     |
| [`tokml`](./tokml.md)                                                 | :x:                     |
| [`traverse`](./traverse.md)                                           | :ballot\_box\_with\_check: |
| [`tsc`](./tsc.md)                                                     | :x:                     |
| [`tsup`](./tsup.md)                                                   | :x:                     |
| [`tweetnacl`](./tweetnacl.md)                                         | :x:                     |
| [`typescript-native-preview`](./typescript-native-preview.md)         | :x:                     |
| [`uri-js`](./uri-js.md)                                               | :x:                     |
| [`utf8`](./utf8.md)                                                   | :x:                     |
| [`uuidv4`](./uuidv4.md)                                               | :x:                     |
| [`vue3-markdown-it`](./vue3-markdown-it.md)                           | :x:                     |
| [`wait-for-expect`](./wait-for-expect.md)                             | :x:                     |
| [`wellknown`](./wellknown.md)                                         | :x:                     |
| [`wrap-ansi`](./wrap-ansi.md)                                         | :x:                     |
| [`xmldom`](./xmldom.md)                                               | :x:                     |
| [`yaml-ast-parser`](./yaml-ast-parser.md)                             | :x:                     |
