Get all Node dependencies required by a subset of top-level dependencies
npm install datwdEasily get a list of all Node subdependencies for your top-level dependencies
Install:
yarn add --dev datwd or npm install --dev datwd
Make sure the npm CLI is available and your dependencies are all installed. Then:
``js`
const getDependencies = require('datwd')
const allDeps = getDependencies(['some-package', '@another/package'])
#### 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:
`js
// 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!