webpack打包对使用了未导出的模块was not found in的报警如何变成报错?

文件a.js
import {test} from 'b.js'
文件b.js没有导出test

webpack警报
WARNING in a.js
export 'test' (imported as 'test') was not found in b.js

怎么把这个WARNING变成ERROR,webpack是production环境

阅读 2.7k
2 个回答
✓ 已被采纳新手上路,请多包涵

在文webpack档角落里找到了配置

module.exports = {
  module: {
    strictExportPresence: false,
  },
};

可以使用Webpack中的fail-on-errors-webpack-plugin插件来将警告转换为错误。

首先,在终端中运行以下命令来安装该插件:

npm install --save-dev fail-on-errors-webpack-plugin

然后,在webpack.config.js文件中引入该插件并添加到plugins数组中:

const FailOnErrorsWebpackPlugin = require('fail-on-errors-webpack-plugin');

module.exports = {
  // other configs
  mode: 'production',
  plugins: [
    new FailOnErrorsWebpackPlugin({
      failOnError: true
    })
  ]
}

这样,当运行Webpack构建时,WARNING将被视为一个错误,并阻止构建进程结束。

另外一种将WARNING转换为ERROR的方法是,使用Webpack中的optimization配置选项中的emitWarningemitError属性。

webpack.config.js文件中,将optimizationemitWarning配置选项设置为true,将emitError配置选项设置为false。这将允许警告被发出,但将其标记为错误,因此将阻止进程结束:

module.exports = {
  // other configs
  mode: 'production',
  optimization: {
    emitWarning: true,
    emitError: false
  }
}

这种方法的优势在于,它不需要使用额外的插件。但是,需要注意的是,这种方法可能会导致一些额外的警告信息输出到控制台,可能会干扰开发者的注意力。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题