mirror of https://github.com/webpack/webpack.git
support import and require condition names
This commit is contained in:
parent
368eec5510
commit
7f84f6be46
|
|
@ -17,6 +17,8 @@ const Module = require("./Module");
|
|||
const ModuleFactory = require("./ModuleFactory");
|
||||
const NormalModule = require("./NormalModule");
|
||||
const RawModule = require("./RawModule");
|
||||
const CommonJsRequireContextDependency = require("./dependencies/CommonJsRequireContextDependency");
|
||||
const CommonJsRequireDependency = require("./dependencies/CommonJsRequireDependency");
|
||||
const BasicEffectRulePlugin = require("./rules/BasicEffectRulePlugin");
|
||||
const BasicMatcherRulePlugin = require("./rules/BasicMatcherRulePlugin");
|
||||
const RuleSetCompiler = require("./rules/RuleSetCompiler");
|
||||
|
|
@ -44,6 +46,8 @@ const { join } = require("./util/fs");
|
|||
*/
|
||||
|
||||
const EMPTY_OBJECT = {};
|
||||
const REQUIRE_CONDITION_NAME = { conditionNames: ["require", "..."] };
|
||||
const IMPORT_CONDITION_NAME = { conditionNames: ["import", "..."] };
|
||||
|
||||
const MATCH_RESOURCE_REGEX = /^([^!]+)!=!/;
|
||||
|
||||
|
|
@ -502,8 +506,50 @@ class NormalModuleFactory extends ModuleFactory {
|
|||
if (cacheEntry) return callback(null, cacheEntry);
|
||||
}
|
||||
const context = data.context || this.context;
|
||||
const resolveOptions = data.resolveOptions || EMPTY_OBJECT;
|
||||
let resolveOptions;
|
||||
const dependency = dependencies[0];
|
||||
|
||||
if (
|
||||
dependency instanceof CommonJsRequireDependency ||
|
||||
dependency instanceof CommonJsRequireContextDependency
|
||||
) {
|
||||
if (!data.resolveOptions) {
|
||||
resolveOptions = REQUIRE_CONDITION_NAME;
|
||||
} else {
|
||||
if (Array.isArray(data.resolveOptions.conditionNames)) {
|
||||
if (data.resolveOptions.conditionNames.indexOf("require") === -1) {
|
||||
resolveOptions = { ...data.resolveOptions };
|
||||
resolveOptions.conditionNames = REQUIRE_CONDITION_NAME.conditionNames.slice();
|
||||
} else {
|
||||
resolveOptions = data.resolveOptions;
|
||||
}
|
||||
} else {
|
||||
resolveOptions = {
|
||||
...data.resolveOptions,
|
||||
conditionNames: REQUIRE_CONDITION_NAME.conditionNames.slice()
|
||||
};
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!data.resolveOptions) {
|
||||
resolveOptions = IMPORT_CONDITION_NAME;
|
||||
} else {
|
||||
if (Array.isArray(data.resolveOptions.conditionNames)) {
|
||||
if (data.resolveOptions.conditionNames.indexOf("import") === -1) {
|
||||
resolveOptions = { ...data.resolveOptions };
|
||||
resolveOptions.conditionNames = IMPORT_CONDITION_NAME.conditionNames.slice();
|
||||
} else {
|
||||
resolveOptions = data.resolveOptions;
|
||||
}
|
||||
} else {
|
||||
resolveOptions = {
|
||||
...data.resolveOptions,
|
||||
conditionNames: IMPORT_CONDITION_NAME.conditionNames.slice()
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const request = dependency.request;
|
||||
const contextInfo = data.contextInfo;
|
||||
const fileDependencies = new LazySet();
|
||||
|
|
|
|||
Loading…
Reference in New Issue