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.

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.
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.
npm install webpack-dependency-suite
yarn add webpack-dependency-suite
pnpm add webpack-dependency-suite

Demonstrates basic setup with CommentIncludeLoader for require.include comments and MappedModuleIdsPlugin for custom module IDs.

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']
    })
  ]
};