UNPKG

1.93 kBJavaScriptView Raw
1/*
2 MIT License http://www.opensource.org/licenses/mit-license.php
3 Author Tobias Koppers @sokra
4*/
5
6"use strict";
7
8const WebpackError = require("./WebpackError");
9const makeSerializable = require("./util/makeSerializable");
10
11/** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */
12/** @typedef {import("./Module")} Module */
13
14class InvalidDependenciesModuleWarning extends WebpackError {
15 /**
16 * @param {Module} module module tied to dependency
17 * @param {Iterable<string>} deps invalid dependencies
18 */
19 constructor(module, deps) {
20 const orderedDeps = deps ? Array.from(deps).sort() : [];
21 const depsList = orderedDeps.map(dep => ` * ${JSON.stringify(dep)}`);
22 super(`Invalid dependencies have been reported by plugins or loaders for this module. All reported dependencies need to be absolute paths.
23Invalid dependencies may lead to broken watching and caching.
24As best effort we try to convert all invalid values to absolute paths and converting globs into context dependencies, but this is deprecated behavior.
25Loaders: Pass absolute paths to this.addDependency (existing files), this.addMissingDependency (not existing files), and this.addContextDependency (directories).
26Plugins: Pass absolute paths to fileDependencies (existing files), missingDependencies (not existing files), and contextDependencies (directories).
27Globs: They are not supported. Pass absolute path to the directory as context dependencies.
28The following invalid values have been reported:
29${depsList.slice(0, 3).join("\n")}${
30 depsList.length > 3 ? "\n * and more ..." : ""
31 }`);
32
33 this.name = "InvalidDependenciesModuleWarning";
34 this.details = depsList.slice(3).join("\n");
35 this.module = module;
36
37 Error.captureStackTrace(this, this.constructor);
38 }
39}
40
41makeSerializable(
42 InvalidDependenciesModuleWarning,
43 "webpack/lib/InvalidDependenciesModuleWarning"
44);
45
46module.exports = InvalidDependenciesModuleWarning;