Webpack 4.x没有告诉我何时未定义导入

时间:2018-06-10 01:09:30

标签: webpack

使用Webpack 4.12

如果我尝试从模块中导入某些模块,但是我尝试导入的东西没有,webpack就没有提及它。

例如,如果我尝试执行其中任何一个(使用harmony或commonjs):

import {shouldnotwork} from 'core-js';
const {shouldnotwork} = require('core-js');

然后,Webpack就像没有问题一样继续。在这些情况下,shouldnotwork将为undefined

与此同时,在我的庞大网站中,使用该组件的所有页面和功能在运行时都无法正常工作。当然,除非我真的尝试使用我网站的每个功能,否则我不会意识到这一点。

所以,我试图使用strictModuleExceptionHandlingwhich someone suggested online

In webpack.config.js
config.output = {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js', 
    strictModuleExceptionHandling: true
};

这绝对没有。我用错了吗?

我还考虑过尝试使用strictExportPresencewhich someone had suggested。但是according to their documentation,它已被弃用,将被移除。

我想要的是,当我尝试导入一些不存在的东西(导致未定义)时,Webpack会向控制台打印一些警告我的内容。

我已经习惯了这个功能,因为我目前的Gulp.js + Browserify构建系统没有囚犯。我想切换到Webpack,但这是一个巨大的展示阻止,直到我能达到我已经拥有的相同水平的质量控制。

那么,我该怎样做才能实现这一目标呢?

谢谢,

1 个答案:

答案 0 :(得分:1)

首先,我必须通过在webpack-preset-env配置中设置$(function(){ $("#image_upload_form").on('submit', (e) => { e.preventDefault(); var data = $("#output_image").attr('src'); var caption = $("#img_caption").val(); var ajaxData = { img: data, caption : caption }; $.ajax({ type: "POST", url: "./upload.php", cache: false, data: ajaxData, success: function(data){ console.log(data); }, error: function(errr){ console.log(errr); } }); }); }); 来告诉Babel缺少导入错误。这导致Webpack发出警告。

第二,设置modules: false会将那些警告变成编译错误。