Socket
Socket
Sign inDemoInstall

report-missing-dependencies

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

report-missing-dependencies

This utility will parse the `*.js` files and the `*.ts` files in your `src` folder to identify all packages used in the `import {xxx} from "package"` statement. And it will report an error if that package is missing from the `package.json`.


Version published
Weekly downloads
75
decreased by-52.53%
Maintainers
1
Weekly downloads
 
Created
Source

report-missing-dependencies: Check all the dependencies in the package.json

This utility will parse the *.js files and the *.ts files in your src folder to identify all packages used in the import {xxx} from "package" statement. And it will report an error if that package is missing from the package.json.

Features

  • Reports an error if a package (e.g. import {xx} from "my-package") is used in the src folder but not defined in the dependencies section (or peerDependencies section) of the package.json.
  • Reports an error if a type is imported from a package (e.g. import type {MyType} from "my-package") but that package is not in the devDependencies section of the package.json.

Usage

{
    "name": "your-project",
    ...
    "scripts": {
        "tsc": "tsc --build tsconfig.json",
        "build": "report-missing-dependencies && npm run tsc"
    },
    "devDependencies": {
        "report-missing-dependencies": "*"
    }
}

Command line

Usage: report-missing-dependencies [options]

Options:
--cwd <string>                     Execution folder
                                   (default: ".")
--src <string>                     Source folder (default: "src")
--ignoredDependencies <string...>  Packages that are used in the `src` folder
                                   (e.g. `import fs from "fs"`) but do not
                                   need to be added to the `dependencies`
                                   section of the `package.json`.
                                   (default: "fs http net url")
--runtimeDependencies <string...>  Packages that are not used in an import
                                   statement in the `src` folder but still
                                   need to be specified in the `dependencies`
                                   section of the `package.json`.
                                   (default: "")
--testMatch <string...>            The glob patterns uses to detect test files.
                                   (default: "**/__tests__/**/*.?(m|c)[jt]s?(x) **/__stories__/**/*.?(m|c)[jt]s?(x) **/?(*.)+(spec|specs|test|tests|story|stories).?(m|c)[jt]s?(x)")
-h, --help                         display help for command

Configuration

//.rmdrc.js
const builtinModules = require("module").builtinModules;
module.exports = {
    src: "src",
    ignoredDependencies: [...builtinModules],
    runtimeDependencies: [],
    testMatch: [
        "**/__tests__/**/*.?(m|c)[jt]s?(x)",
        "**/__stories__/**/*.?(m|c)[jt]s?(x)",
        "**/?(*.)+(spec|specs|test|tests|story|stories).?(m|c)[jt]s?(x)"
    ]
}

Why

Invalid dependencies in the package.json of a project can cause any issues.

  • E.g. When working on a mono-repo using a toold like NX, a missing dependency on one of the projects in the mono-repo can cause NX not to compile the missing dependency causing errors at runtime.
  • E.g. When working on a mono-repo using a toold like NX, a extraneout dependency on one of the projects in the mono-repo can cause NX compile the extraneous dependency causing a slower development cycle.
  • E.g. If a runtime dependency is incorrectly places in the devDependencies rather than the dependencies, you will not notice any issue in development mode (because yarn install installs all dependencies in the node_modules folder), but you will experience some runtime errors in production (because yarn isntall --production does not install dev dependencies).

You can arguably use depcheck to identify missing dependencies. In fact, depcheck has many more options than report-missing-dependencies. But report-missing-dependencies has the advantage that it can be used in the Continuous Integration pipeline.

FAQs

Package last updated on 24 Jan 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc