<h1 dir="auto">Bug report</h1>
<blockquote>
<p dir="auto">webpack.config.js<br>
<code class="notranslate">{     target: 'es5' }</code></p>
</blockquote>
<blockquote>
<p dir="auto">build result</p>
</blockquote>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="1. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__) =&gt; {}
   2. var wrapDeps = function(deps) { return deps.map(function(dep) {
	if(dep !== null &amp;&amp; typeof dep === &quot;object&quot;) {
		if(dep[webpackThen]) return dep;
		     if(dep.then) {
      		         var queue = [], result;
					dep.then(function(r) {
						obj[webpackExports] = r;
						completeQueue(queue);
 						queue = 0;
 					});
					var obj = { [webpackThen]: (fn, reject) =&gt; { queueFunction(queue, fn); dep.catch(reject); } };
 					return obj;
				}
 			}
			return { [webpackThen]: (fn) =&gt; { completeFunction(fn); }, [webpackExports]: dep };
 		}); };"><pre class="notranslate"><code class="notranslate">1. __webpack_require__.a(module, async (__webpack_handle_async_dependencies__) =&gt; {}
   2. var wrapDeps = function(deps) { return deps.map(function(dep) {
	if(dep !== null &amp;&amp; typeof dep === "object") {
		if(dep[webpackThen]) return dep;
		     if(dep.then) {
      		         var queue = [], result;
					dep.then(function(r) {
						obj[webpackExports] = r;
						completeQueue(queue);
 						queue = 0;
 					});
					var obj = { [webpackThen]: (fn, reject) =&gt; { queueFunction(queue, fn); dep.catch(reject); } };
 					return obj;
				}
 			}
			return { [webpackThen]: (fn) =&gt; { completeFunction(fn); }, [webpackExports]: dep };
 		}); };
</code></pre></div>
<blockquote>
<p dir="auto">files at:</p>
</blockquote>
<ol dir="auto">
<li>webpack/lib/dependencies/HarmonyCompatibilityDependency.js</li>
<li>webpack/lib/runtime/AsyncModuleRuntimeModule.js</li>
</ol>
<blockquote>
<p dir="auto">why not run supportsArrowFunction()?</p>
</blockquote>
<ol dir="auto">
<li>runtimeTemplate.supportsArrowFunction()</li>
<li>Can traditional functions cause other errors ？</li>
</ol>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="new InitFragment(
	`${RuntimeGlobals.asyncModule}(${module.moduleArgument}, **async (__webpack_handle_async_dependencies__) =&gt; {\n`**,
	InitFragment.STAGE_ASYNC_BOUNDARY,
	0,
	undefined,
	module.buildMeta.async
		? `\n__webpack_handle_async_dependencies__();\n}, 1);`
		: &quot;\n});&quot;
)"><pre class="notranslate"><code class="notranslate">new InitFragment(
	`${RuntimeGlobals.asyncModule}(${module.moduleArgument}, **async (__webpack_handle_async_dependencies__) =&gt; {\n`**,
	InitFragment.STAGE_ASYNC_BOUNDARY,
	0,
	undefined,
	module.buildMeta.async
		? `\n__webpack_handle_async_dependencies__();\n}, 1);`
		: "\n});"
)
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="`var wrapDeps = ${runtimeTemplate.returningFunction(
      `deps.map(${runtimeTemplate.basicFunction(&quot;dep&quot;, [
	      'if(dep !== null &amp;&amp; typeof dep === &quot;object&quot;) {',
	      Template.indent([
		      &quot;if(dep[webpackThen]) return dep;&quot;,
		      &quot;if(dep.then) {&quot;,
		      Template.indent([
			      &quot;var queue = [], result;&quot;,
			      `dep.then(${runtimeTemplate.basicFunction(&quot;r&quot;, [
				      &quot;obj[webpackExports] = r;&quot;,
				      &quot;completeQueue(queue);&quot;,
				      &quot;queue = 0;&quot;
			      ])});`,
			      &quot;**var obj = { [webpackThen]: (fn, reject) =&gt; { queueFunction(queue, fn); dep.catch(reject); } };**&quot;,
			      &quot;return obj;&quot;
		      ]),
		      &quot;}&quot;
	      ]),
	      &quot;}&quot;,
	      &quot;**return { [webpackThen]: (fn) =&gt; { completeFunction(fn); }, [webpackExports]: dep };**&quot;
      ])})`,
      &quot;deps&quot;
)};`,"><pre class="notranslate"><code class="notranslate">`var wrapDeps = ${runtimeTemplate.returningFunction(
      `deps.map(${runtimeTemplate.basicFunction("dep", [
	      'if(dep !== null &amp;&amp; typeof dep === "object") {',
	      Template.indent([
		      "if(dep[webpackThen]) return dep;",
		      "if(dep.then) {",
		      Template.indent([
			      "var queue = [], result;",
			      `dep.then(${runtimeTemplate.basicFunction("r", [
				      "obj[webpackExports] = r;",
				      "completeQueue(queue);",
				      "queue = 0;"
			      ])});`,
			      "**var obj = { [webpackThen]: (fn, reject) =&gt; { queueFunction(queue, fn); dep.catch(reject); } };**",
			      "return obj;"
		      ]),
		      "}"
	      ]),
	      "}",
	      "**return { [webpackThen]: (fn) =&gt; { completeFunction(fn); }, [webpackExports]: dep };**"
      ])})`,
      "deps"
)};`,
</code></pre></div>
<p dir="auto"><strong>Other relevant information:</strong><br>
webpack version:  5.25.0<br>
Node.js version: 12<br>
Operating System: mac<br>
Additional tools:</p>
<p dir="auto">english is poor, sry</p>
<h1 dir="auto">Bug report</h1>




<p dir="auto"><strong>What is the current behavior?</strong></p>
<p dir="auto">Not sure if this is a problem with a loader or webpack itself, but on a project that is using typescript, I'm getting a warning:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="    WARNING in ./React/src/components/_shared/form/form-model.ts
    17:0-39 &quot;export 'IValidation' was not found in '_types/IValidation'&quot;
        at HarmonyExportImportedSpecifierDependency._getErrors (C:\project\node_modules\webpack\lib\dependencies\HarmonyExportImportedSpecifierDependency.js:352:11)
        at HarmonyExportImportedSpecifierDependency.getWarnings (C:\project\node_modules\webpack\lib\dependencies\HarmonyExportImportedSpecifierDependency.js:299:15)
        at Compilation.reportDependencyErrorsAndWarnings (C:\project\node_modules\webpack\lib\Compilation.js:985:24)
        at Compilation.finish (C:\project\node_modules\webpack\lib\Compilation.js:817:9)
        at hooks.make.callAsync.err (C:\project\node_modules\webpack\lib\Compiler.js:479:17)
        at _done (eval at create (C:\project\node_modules\tapable\lib\HookCodeFactory.js:24:12), &lt;anonymous&gt;:9:1)
        at _err0 (eval at create (C:\project\node_modules\tapable\lib\HookCodeFactory.js:24:12), &lt;anonymous&gt;:20:22)
        at _addModuleChain (C:\project\node_modules\webpack\lib\Compilation.js:758:12)
        at processModuleDependencies.err (C:\project\node_modules\webpack\lib\Compilation.js:697:9)
        at _combinedTickCallback (internal/process/next_tick.js:131:7)
        at process._tickCallback (internal/process/next_tick.js:180:9)"><pre class="notranslate">    <span class="pl-c1">WARNING</span> <span class="pl-k">in</span> <span class="pl-kos">.</span><span class="pl-c1">/</span><span class="pl-v">React</span><span class="pl-c1">/</span><span class="pl-s1">src</span><span class="pl-c1">/</span><span class="pl-s1">components</span><span class="pl-c1">/</span><span class="pl-s1">_shared</span><span class="pl-c1">/</span><span class="pl-s1">form</span><span class="pl-c1">/</span><span class="pl-s1">form</span><span class="pl-c1">-</span><span class="pl-s1">model</span><span class="pl-kos">.</span><span class="pl-c1">ts</span>
    <span class="pl-c1">17</span>:<span class="pl-c1">0</span><span class="pl-c1">-</span><span class="pl-c1">39</span> <span class="pl-s">"export 'IValidation' was not found in '_types/IValidation'"</span>
        <span class="pl-s1">at</span><span class="pl-kos"></span> <span class="pl-v">HarmonyExportImportedSpecifierDependency</span><span class="pl-kos">.</span><span class="pl-en">_getErrors</span> <span class="pl-kos">(</span><span class="pl-v">C</span>:\p<span class="pl-s1">roject</span>\n<span class="pl-s1">ode_modules</span>\w<span class="pl-s1">ebpack</span>\l<span class="pl-s1">ib</span>\d<span class="pl-s1">ependencies</span>\H<span class="pl-s1">armonyExportImportedSpecifierDependency</span><span class="pl-kos">.</span><span class="pl-c1">js</span>:<span class="pl-c1">352</span>:<span class="pl-c1">11</span><span class="pl-kos">)</span>
        <span class="pl-s1">at</span><span class="pl-kos"></span> <span class="pl-v">HarmonyExportImportedSpecifierDependency</span><span class="pl-kos">.</span><span class="pl-en">getWarnings</span> <span class="pl-kos">(</span><span class="pl-v">C</span>:\p<span class="pl-s1">roject</span>\n<span class="pl-s1">ode_modules</span>\w<span class="pl-s1">ebpack</span>\l<span class="pl-s1">ib</span>\d<span class="pl-s1">ependencies</span>\H<span class="pl-s1">armonyExportImportedSpecifierDependency</span><span class="pl-kos">.</span><span class="pl-c1">js</span>:<span class="pl-c1">299</span>:<span class="pl-c1">15</span><span class="pl-kos">)</span>
        <span class="pl-s1">at</span><span class="pl-kos"></span> <span class="pl-v">Compilation</span><span class="pl-kos">.</span><span class="pl-en">reportDependencyErrorsAndWarnings</span> <span class="pl-kos">(</span><span class="pl-v">C</span>:\p<span class="pl-s1">roject</span>\n<span class="pl-s1">ode_modules</span>\w<span class="pl-s1">ebpack</span>\l<span class="pl-s1">ib</span>\C<span class="pl-s1">ompilation</span><span class="pl-kos">.</span><span class="pl-c1">js</span>:<span class="pl-c1">985</span>:<span class="pl-c1">24</span><span class="pl-kos">)</span>
        <span class="pl-s1">at</span><span class="pl-kos"></span> <span class="pl-v">Compilation</span><span class="pl-kos">.</span><span class="pl-en">finish</span> <span class="pl-kos">(</span><span class="pl-v">C</span>:\p<span class="pl-s1">roject</span>\n<span class="pl-s1">ode_modules</span>\w<span class="pl-s1">ebpack</span>\l<span class="pl-s1">ib</span>\C<span class="pl-s1">ompilation</span><span class="pl-kos">.</span><span class="pl-c1">js</span>:<span class="pl-c1">817</span>:<span class="pl-c1">9</span><span class="pl-kos">)</span>
        <span class="pl-s1">at</span> <span class="pl-s1">hooks</span><span class="pl-kos">.</span><span class="pl-c1">make</span><span class="pl-kos">.</span><span class="pl-c1">callAsync</span><span class="pl-kos">.</span><span class="pl-en">err</span> <span class="pl-kos">(</span><span class="pl-v">C</span>:\p<span class="pl-s1">roject</span>\n<span class="pl-s1">ode_modules</span>\w<span class="pl-s1">ebpack</span>\l<span class="pl-s1">ib</span>\C<span class="pl-s1">ompiler</span><span class="pl-kos">.</span><span class="pl-c1">js</span>:<span class="pl-c1">479</span>:<span class="pl-c1">17</span><span class="pl-kos">)</span>
        <span class="pl-s1">at</span> <span class="pl-s1">_done</span> <span class="pl-kos">(</span><span class="pl-s1">eval</span> <span class="pl-s1">at</span> <span class="pl-en">create</span> <span class="pl-kos">(</span><span class="pl-v">C</span>:\p<span class="pl-s1">roject</span>\n<span class="pl-s1">ode_modules</span>\t<span class="pl-s1">apable</span>\l<span class="pl-s1">ib</span>\H<span class="pl-s1">ookCodeFactory</span><span class="pl-kos">.</span><span class="pl-c1">js</span>:<span class="pl-c1">24</span>:<span class="pl-c1">12</span><span class="pl-kos">)</span><span class="pl-kos">,</span> <span class="pl-c1">&lt;</span><span class="pl-ent">anonymous</span><span class="pl-c1">&gt;</span>:9:1)
        at _err0 (eval at create (C:\project\node_modules\tapable\lib\HookCodeFactory.js:24:12), <span class="pl-c1">&lt;</span><span class="pl-ent">anonymous</span><span class="pl-c1">&gt;</span>:20:22)
        at _addModuleChain (C:\project\node_modules\webpack\lib\Compilation.js:758:12)
        at processModuleDependencies.err (C:\project\node_modules\webpack\lib\Compilation.js:697:9)
        at _combinedTickCallback (internal/process/next_tick.js:131:7)
        at process._tickCallback (internal/process/next_tick.js:180:9)</pre></div>
<p dir="auto">However, the file in question _types/IValidation, is imported in numerous other files without any warnings being emitted related to those other files that are also importing IValidation from _types/IValidation.</p>
<p dir="auto">The contents of the file are simple, and there is an "export interface IValidation" in the file:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="export enum ValidationType {
    Required,
    Min,
    Max,
    MinLength,
    MaxLength,
}

export interface IValidation {
    validationType: ValidationType;
    errorMessage?: string;
    minValue?: number;
    maxValue?: number;
    maxLength?: number;
    minLength?: number;
}"><pre class="notranslate"><span class="pl-k">export</span> <span class="pl-s1">enum</span> <span class="pl-v">ValidationType</span> <span class="pl-kos">{</span>
    <span class="pl-v">Required</span><span class="pl-kos">,</span>
    <span class="pl-v">Min</span><span class="pl-kos">,</span>
    <span class="pl-v">Max</span><span class="pl-kos">,</span>
    <span class="pl-v">MinLength</span><span class="pl-kos">,</span>
    <span class="pl-v">MaxLength</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span>

<span class="pl-k">export</span> <span class="pl-s1">interface</span> <span class="pl-v">IValidation</span> <span class="pl-kos">{</span>
    <span class="pl-c1">validationType</span>: <span class="pl-v">ValidationType</span><span class="pl-kos"></span><span class="pl-kos">;</span>
    <span class="pl-s1">errorMessage</span>?<span class="pl-s1"></span>: <span class="pl-s1">string</span><span class="pl-kos">;</span>
    <span class="pl-s1">minValue</span>?<span class="pl-s1"></span>: <span class="pl-s1">number</span><span class="pl-kos">;</span>
    <span class="pl-s1">maxValue</span>?<span class="pl-s1"></span>: <span class="pl-s1">number</span><span class="pl-kos">;</span>
    <span class="pl-s1">maxLength</span>?<span class="pl-s1"></span>: <span class="pl-s1">number</span><span class="pl-kos">;</span>
    <span class="pl-s1">minLength</span>?<span class="pl-s1"></span>: <span class="pl-s1">number</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto">We do have our "src" directory set as a module resolution root in the resolve section of our webpack config, but I also tried importing the file with a relative path and still get the warning.</p>
<p dir="auto">I am kind of wondering if this is related to typescript.  We are using ts-loader, but we have it doing type checking only and are doing transpiling with babel.</p>
<p dir="auto"><strong>If the current behavior is a bug, please provide the steps to reproduce.</strong><br>
Not sure since I get the warning due to the import of the file in question in one file but not due to several other files that also import the same interface from the same file.</p>






<p dir="auto"><strong>What is the expected behavior?</strong><br>
It should not issue a warning about a missing export if the export clearly exists.</p>


<p dir="auto"><strong>Other relevant information:</strong><br>
webpack version:  4.8.3<br>
Node.js version: 8.9.1<br>
Operating System: Windows 10<br>
Additional tools: webpack-cli 2.1.3</p>