datwd
v0.2.0
Published
Get all Node dependencies required by a subset of top-level dependencies
Downloads
53
Readme
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'])
Why?
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?
Please open a discussion if you've found DATWD useful in other situations!