Webstorm 引入webpack但仍然无法找到部分Plugin的问题

最近在学习Vue的使用,然而里面又涉及到了Webpack的用法,再加上Webstorm,自然而然遇到了一些困难,其中一个比较典型的问题是因为要使用Webpack中的插件时,Webstorm报了一个错:Unresolved type of DefinePlugin
如下图所示:

这个是别人的问题,我的问题是在使用DefinePlugin这个插件的时候提示的,但两个问题是一个类型,所以问题原因和解决方案是一样的。
原因:
Plugin 模块在webpack中是通过下面的方式导出的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function exportPlugins(exports, path, plugins) {
plugins.forEach(function(name) {
Object.defineProperty(exports, name, {
configurable: false,
enumerable: true,
get: function() {
return require(path + "/" + name);
}
});
});
}

exportPlugins(exports, ".", [
"DefinePlugin",
"NormalModuleReplacementPlugin",
...
]);

这种动态生成的模块不能静态解析,所以需要引入 typescript stubs具体方法是(Preferences | Languages & Frameworks | JavaScript | Libraries, Download.., choose ‘webpack’ | Download and Install);

然后就可以动态解析所需要的模块了。

原解决方法地址:
WebStorm - Unresolved function or method