Webpack:丢失成员导入时抛出错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Webpack:丢失成员导入时抛出错误相关的知识,希望对你有一定的参考价值。
我有一个像这样的导入:
import { foo } from 'bar';
如果没有定义foo
,有没有办法让Webpack抛出错误?
请注意,如果这有所不同,我正在使用Babel。
答案
作为Tobias K pointed out in the comments,另一个答案是不正确的。如果尝试导入不存在的模块,则配置strictModuleExceptionHandling: true
不会产生编译时错误。
正确的配置是strictExportPresence: true
,它仅在webpack v2.3.0及更高版本中可用。 (早期版本只能显示警告,而不是错误。)
另一答案
通过使用output.strictModuleExceptionHandling
,可以将webpack 2配置为在导入失败时抛出错误。该拉动请求https://github.com/webpack/webpack/pull/3302添加了该功能,但尚未记录。以下是如何使用它:
module.exports = {
entry: {
main: "./main.js",
},
output: {
filename: "[name].bundle.js",
strictModuleExceptionHandling: true
}
}
现在,如果我尝试从不存在的文件导入,或者我导入解析为undefined
,我会在webpack控制台中收到错误和警告消息:
WARNING in ./js/pedigree.js
32:35-49 "export 'default' (imported as 'DisorderLegend') was not found in './disorderLegend'
ERROR in ./js/pedigree.js
Module not found: Error: Can't resolve './OkCancelDialogue' in '/home/tim/workspace/projects/public/js/ext-lib/panogram/js'
@ ./js/pedigree.js 5:0-54
@ ./js/viewerPedigree.js
@ ./main.js
@ multi (webpack)-dev-server/client?http://localhost:8080 ./main.js
webpack: Failed to compile.
在Chrome控制台中,您将收到如下警告:
以上是关于Webpack:丢失成员导入时抛出错误的主要内容,如果未能解决你的问题,请参考以下文章
Webpack 代码拆分使用 vueJs 组件中断 jest 导入
为啥@angular/core/core 没有导出成员'ɵɵFactoryDeclaration'。构建项目时抛出错误?