Webpack Dependency Suite
raw JSON → 2.4.5 verified Sat Apr 25 auth: no javascript maintenance
A set of Webpack plugins, loaders and utilities for advanced dependency resolution, including comment-include-loader, conventional-include-loader, explicit-loader, MappedModuleIdsPlugin, and nested-directory resolve plugins. Current stable version is 2.4.5, last updated August 2017 (appears to be in maintenance mode). It extends Webpack's require.include functionality similar to baggage-loader but with more configuration, custom module ID mapping, and enhanced-resolve integration. Requires Webpack 3.x and enhanced-resolve ^3.0.0 as peer dependencies.
Common errors
error Module not found: Error: Can't resolve 'webpack-dependency-suite' ↓
cause Missing peer dependency enhanced-resolve ^3.0.0 or incorrect import path for sub-exported loaders.
fix
npm install enhanced-resolve@^3.0.0 --save-dev
error TypeError: webpack.optimize.OccurrenceOrderPlugin is not a constructor ↓
cause Using Webpack 4+ where OccurrenceOrderPlugin is removed (integrated by default); package expects Webpack 3.
fix
Remove the plugin call or downgrade to Webpack 3: npm install webpack@3 --save-dev
error Error: require.include is not a function ↓
cause Webpack 5 removed require.include; this package relies on it.
fix
Use Webpack 3 or switch to alternative approach with Webpack 5.
Warnings
breaking Package requires Webpack 3.x and enhanced-resolve ^3.0.0. Not compatible with Webpack 4/5. ↓
fix Use with Webpack 3 only or migrate to alternatives like NormalModuleReplacementPlugin.
deprecated Greenkeeper badge present; project appears unmaintained since 2017. No updates for Webpack 4+. ↓
fix Consider using modern alternatives (e.g., webpack-auto-inject, @rollup/plugin-inject).
gotcha Loaders are not exported from main entry; must be required from subpath (e.g., 'webpack-dependency-suite/comment-include-loader'). ↓
fix Use explicit subpath require: require('webpack-dependency-suite/comment-include-loader').
gotcha Glob patterns in comment-include-loader comments require escaped slashes (e.g., 'thing\/*\/also\/works') due to JS comment syntax. ↓
fix Use non-glob paths or escape slashes: /* @import('thing\/*\/also\/works') @lazy @ */ 'module'
gotcha Explicit loader expects JSON file with absolute or relative paths; misconfiguration causes unrecognized dependency errors. ↓
fix Ensure JSON file keys are valid paths relative to project root or absolute.
Install
npm install webpack-dependency-suite yarn add webpack-dependency-suite pnpm add webpack-dependency-suite Imports
- MappedModuleIdsPlugin wrong
import { MappedModuleIdsPlugin } from 'webpack-dependency-suite';correctconst MappedModuleIdsPlugin = require('webpack-dependency-suite').MappedModuleIdsPlugin; - CommentIncludeLoader wrong
const CommentIncludeLoader = require('webpack-dependency-suite');correctconst CommentIncludeLoader = require('webpack-dependency-suite/comment-include-loader'); - ExplicitDependencyPlugin
const ExplicitDependencyPlugin = require('webpack-dependency-suite').ExplicitDependencyPlugin;
Quickstart
const webpack = require('webpack');
const { MappedModuleIdsPlugin } = require('webpack-dependency-suite');
const CommentIncludeLoader = require('webpack-dependency-suite/comment-include-loader');
module.exports = {
entry: './src/index.js',
output: { filename: 'bundle.js' },
module: {
rules: [
{
test: /\.js$/,
use: [
{
loader: CommentIncludeLoader,
options: { /* optional config */ }
}
]
}
]
},
plugins: [
new MappedModuleIdsPlugin({
directories: ['node_modules', 'app'],
extensions: ['.js', '.ts']
})
]
};