我有一个导入这样的事情:的WebPack:一次性错误上缺少的成员进口
import { foo } from 'bar';
是否有一种方式来获得的WebPack抛出一个错误,如果没有定义foo
?
请注意,如果这有所作为,我正在使用Babel。
我有一个导入这样的事情:的WebPack:一次性错误上缺少的成员进口
import { foo } from 'bar';
是否有一种方式来获得的WebPack抛出一个错误,如果没有定义foo
?
请注意,如果这有所作为,我正在使用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是纯javascript。如果(!foo)抛出新的错误('someError'); – Hosar
我的意思是自动的。我遇到过拼错'foo'的情况,并且花了我一些时间才意识到问题所在。看作为webpack必须“导入”它,我假设它会知道它是否被定义或不? – joshhunt
我也想这样。不知道这是否相关:https://github.com/webpack/webpack/issues/1729 – maxedison