GithubHelp home page GithubHelp logo

datwd's Introduction

Dependencies All the Way Down

Easily get a list of all Node subdependencies for your top-level dependencies.

๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐Ÿข๐ŸŒ€...

Get Started

Install:

yarn add --dev datwd or npm install --dev datwd

Make sure the npm CLI is available and your dependencies are all installed. Then:

const getDependencies = require('datwd')
const allDeps = getDependencies(['some-package', '@another/package'])

// For example:
// [
//   'some-package',
//   'dep1-for-some-package',
//   'dep2-for-some-package',
//   '@another/package',
//   '@another/supporting-package',
// ]
console.log(allDeps)

Why?

For use with webpack-node-externals

The primary use case this was built for was to support easier configuration for webpack-node-externals. The allowList property in nodeExternals will whitelist top-level Node dependencies but will ignore subdependencies down the tree (see: Stack Overflow question, webpack-node-externals issue #72). Consequently, by default, your package might ship with missing subdependencies you depend on.

Rather than manually whitelist dependencies and subdependencies (and sub-subdependencies...), use DATWD:

// webpack.config.js
const nodeExternals = require('webpack-node-externals')
const includeSubdependencies = require('datwd')

module.exports = {
  // ...
  externals: [
    nodeExternals({
      // Will include "cookies" and its dependencies; for example:
      // `['cookies', 'depd', 'keygrip', 'tsscmp']`
      allowlist: includeSubdependencies(['cookies'])
    })
  ]
}

Use NPM or Yarn

In many cases, you likely don't want to use DATWD. Instead, rely on the dependency tree from yarn list or npm ls.

Other use cases?

If you've found DATWD useful in other situations, please open a discussion to share.

datwd's People

Contributors

3dteemu avatar kmjennison avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

3dteemu

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.