@11ty/dependency-tree

    2.0.0 • Public • Published

    dependency-tree

    Returns an unordered array of local paths to dependencies of a node JavaScript file (everything it or any of its dependencies requires).

    Reduced feature (faster) alternative to the dependency-tree package that only works with stock node JS. This is used by Eleventy to find dependencies of a JavaScript file to watch for changes to re-run Eleventy’s build.

    Big Huge Caveat

    A big caveat to this plugin is that it will require the file in order to build a dependency tree. So if your module has side effects and you don’t want it to execute—do not use this!

    Installation

    npm install --save-dev @11ty/dependency-tree
    

    Features

    • Ignores node_modules
    • Or, use nodeModuleNamesOnly to return a list of node_modules packages (added in v2.0.0)
    • Ignores Node’s built-ins (e.g. path)
    • Handles circular dependencies (Node does this too)

    Usage

    // my-file.js
    
    // if my-local-dependency.js has dependencies, it will include those too
    const test = require("./my-local-dependency.js");
    
    // ignored, is a built-in
    const path = require("path");
    const DependencyTree = require("@11ty/dependency-tree");
    
    DependencyTree("./my-file.js");
    // returns ["./my-local-dependency.js"]

    allowNotFound

    const DependencyTree = require("@11ty/dependency-tree");
    
    DependencyTree("./this-does-not-exist.js"); // throws an error
    
    DependencyTree("./this-does-not-exist.js", { allowNotFound: true });
    // returns []

    nodeModuleNamesOnly

    (Added in v2.0.0) Navigates all the local files and returns a list of unique package names (not file names) required.

    const DependencyTree = require("@11ty/dependency-tree");
    
    DependencyTree("./this-does-not-exist.js", { nodeModuleNamesOnly: true });
    // returns []

    Keywords

    none

    Install

    npm i @11ty/dependency-tree

    DownloadsWeekly Downloads

    29,443

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    9.44 kB

    Total Files

    20

    Last publish

    Collaborators

    • zachleat