Browse Source

Merge pull request #14779 from grafana/tooling/ignore-not-found-export-warnings

Removes unnecessary warnings from webpack output about missing exports
Torkel Ödegaard 7 years ago
parent
commit
322a3efb25
2 changed files with 24 additions and 0 deletions
  1. 22 0
      scripts/webpack/IgnoreNotFoundExportPlugin.js
  2. 2 0
      scripts/webpack/webpack.hot.js

+ 22 - 0
scripts/webpack/IgnoreNotFoundExportPlugin.js

@@ -0,0 +1,22 @@
+// https://github.com/TypeStrong/ts-loader/issues/653#issuecomment-390889335
+
+const ModuleDependencyWarning = require("webpack/lib/ModuleDependencyWarning")
+
+module.exports = class IgnoreNotFoundExportPlugin {
+    apply(compiler) {
+        const messageRegExp = /export '.*'( \(reexported as '.*'\))? was not found in/
+        function doneHook(stats) {
+            stats.compilation.warnings = stats.compilation.warnings.filter(function(warn) {
+                if (warn instanceof ModuleDependencyWarning && messageRegExp.test(warn.message)) {
+                    return false
+                }
+                return true;
+            })
+        }
+        if (compiler.hooks) {
+            compiler.hooks.done.tap("IgnoreNotFoundExportPlugin", doneHook)
+        } else {
+            compiler.plugin("done", doneHook)
+        }
+    }
+}

+ 2 - 0
scripts/webpack/webpack.hot.js

@@ -7,6 +7,7 @@ const webpack = require('webpack');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const HtmlWebpackHarddiskPlugin = require('html-webpack-harddisk-plugin');
 const HtmlWebpackHarddiskPlugin = require('html-webpack-harddisk-plugin');
 const CleanWebpackPlugin = require('clean-webpack-plugin');
 const CleanWebpackPlugin = require('clean-webpack-plugin');
+const IgnoreNotFoundExportPlugin = require("./IgnoreNotFoundExportPlugin.js");
 
 
 module.exports = merge(common, {
 module.exports = merge(common, {
   entry: {
   entry: {
@@ -111,5 +112,6 @@ module.exports = merge(common, {
         NODE_ENV: JSON.stringify('development'),
         NODE_ENV: JSON.stringify('development'),
       },
       },
     }),
     }),
+    new IgnoreNotFoundExportPlugin(),
   ],
   ],
 });
 });