{"id":20744,"library":"webpack-dependency-suite","title":"Webpack Dependency Suite","description":"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.","status":"maintenance","version":"2.4.5","language":"javascript","source_language":"en","source_url":"https://github.com/niieani/webpack-dependency-suite","tags":["javascript","webpack","toolkit","suite","plugin","loader","require.include"],"install":[{"cmd":"npm install webpack-dependency-suite","lang":"bash","label":"npm"},{"cmd":"yarn add webpack-dependency-suite","lang":"bash","label":"yarn"},{"cmd":"pnpm add webpack-dependency-suite","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency for MappedModuleIdsPlugin manual resolution","package":"enhanced-resolve","optional":false}],"imports":[{"note":"Package is CJS-only; ES import will fail.","wrong":"import { MappedModuleIdsPlugin } from 'webpack-dependency-suite';","symbol":"MappedModuleIdsPlugin","correct":"const MappedModuleIdsPlugin = require('webpack-dependency-suite').MappedModuleIdsPlugin;"},{"note":"Loaders are in subpath exports; not imported from main entry.","wrong":"const CommentIncludeLoader = require('webpack-dependency-suite');","symbol":"CommentIncludeLoader","correct":"const CommentIncludeLoader = require('webpack-dependency-suite/comment-include-loader');"},{"note":"Part of the main export. Use only with CJS require() as package is not ESM-friendly.","wrong":null,"symbol":"ExplicitDependencyPlugin","correct":"const ExplicitDependencyPlugin = require('webpack-dependency-suite').ExplicitDependencyPlugin;"}],"quickstart":{"code":"const webpack = require('webpack');\nconst { MappedModuleIdsPlugin } = require('webpack-dependency-suite');\nconst CommentIncludeLoader = require('webpack-dependency-suite/comment-include-loader');\n\nmodule.exports = {\n  entry: './src/index.js',\n  output: { filename: 'bundle.js' },\n  module: {\n    rules: [\n      {\n        test: /\\.js$/,\n        use: [\n          {\n            loader: CommentIncludeLoader,\n            options: { /* optional config */ }\n          }\n        ]\n      }\n    ]\n  },\n  plugins: [\n    new MappedModuleIdsPlugin({\n      directories: ['node_modules', 'app'],\n      extensions: ['.js', '.ts']\n    })\n  ]\n};","lang":"javascript","description":"Demonstrates basic setup with CommentIncludeLoader for require.include comments and MappedModuleIdsPlugin for custom module IDs."},"warnings":[{"fix":"Use with Webpack 3 only or migrate to alternatives like NormalModuleReplacementPlugin.","message":"Package requires Webpack 3.x and enhanced-resolve ^3.0.0. Not compatible with Webpack 4/5.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Consider using modern alternatives (e.g., webpack-auto-inject, @rollup/plugin-inject).","message":"Greenkeeper badge present; project appears unmaintained since 2017. No updates for Webpack 4+.","severity":"deprecated","affected_versions":">=2.4.5"},{"fix":"Use explicit subpath require: require('webpack-dependency-suite/comment-include-loader').","message":"Loaders are not exported from main entry; must be required from subpath (e.g., 'webpack-dependency-suite/comment-include-loader').","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Use non-glob paths or escape slashes: /* @import('thing\\/*\\/also\\/works') @lazy @ */ 'module'","message":"Glob patterns in comment-include-loader comments require escaped slashes (e.g., 'thing\\/*\\/also\\/works') due to JS comment syntax.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Ensure JSON file keys are valid paths relative to project root or absolute.","message":"Explicit loader expects JSON file with absolute or relative paths; misconfiguration causes unrecognized dependency errors.","severity":"gotcha","affected_versions":">=2.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"npm install enhanced-resolve@^3.0.0 --save-dev","cause":"Missing peer dependency enhanced-resolve ^3.0.0 or incorrect import path for sub-exported loaders.","error":"Module not found: Error: Can't resolve 'webpack-dependency-suite'"},{"fix":"Remove the plugin call or downgrade to Webpack 3: npm install webpack@3 --save-dev","cause":"Using Webpack 4+ where OccurrenceOrderPlugin is removed (integrated by default); package expects Webpack 3.","error":"TypeError: webpack.optimize.OccurrenceOrderPlugin is not a constructor"},{"fix":"Use Webpack 3 or switch to alternative approach with Webpack 5.","cause":"Webpack 5 removed require.include; this package relies on it.","error":"Error: require.include is not a function","affected_versions":">=2.0.0"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}