webpakc原理之开发一个清除console.log(xxx)的loader

这篇具有很好参考价值的文章主要介绍了webpakc原理之开发一个清除console.log(xxx)的loader。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、webpack中清除console的方法

当然想要清除console我们可以使用babel-loader结合babel-plugin-transform-remove-console插件来实现。

  1. 安装babel-loader和babel-plugin-transform-remove-console插件
npm install babel-loader babel-plugin-transform-remove-console -D
  1. 在webpack配置文件中配置loader
module.exports = {
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env'],
            plugins: [['transform-remove-console', {exclude: ['error', 'warn']}]]
          }
        }
      }
    ]
  }
};

其中,babel-plugin-transform-remove-console插件中的exclude选项可以指定保留哪些日志级别的console语句。上面的示例中保留了errorwarn级别的console语句,其它级别的将被移除。如果不指定exclude选项,则会移除所有console语句。

二、自定义实现clean-console-loader

上面我们是借助babel插件实现的清除console,那么经过前面章节的铺垫,我们了解了loader的本质、执行顺序、以及分类还有常用的api,我们是否可以自己尝试写一个类似功能的loader呢?

下面我们就一起来实现一下吧

其实很简单就用正则匹配替换一下就行了,哈哈哈

  • clean-console.loader
module.exports = function (content) {
  // 清除文件内容中console.log(xxx)
  return content.replace(/console\.log\(.*\);?/g, "");
};

配置使用

  • webpack.config.js
  module: {
    rules: [
      {
        test: /\.js$/,
        loader: "./loaders/clean-log-loader",
      },
     ]
   }

这样就可以啦

  • main.js
    webpakc原理之开发一个清除console.log(xxx)的loader
    我们在main.js中写两个console

打包看看效果

npm run dev

webpakc原理之开发一个清除console.log(xxx)的loader
可以看到控制台干干净净什么都没有,说明我们自定义的清除console语句的loader生效啦。文章来源地址https://www.toymoban.com/news/detail-500111.html

到了这里,关于webpakc原理之开发一个清除console.log(xxx)的loader的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小程序console.log不打印问题

    好像某一天突然小程序就不打印了... 全局搜索compress.drop_console(一般在config文件中),设置为false即可 解决了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 然后顺便升级了小程序最新版本。 附上配置图:

    2024年02月12日
    浏览(34)
  • Selenium 捕获 console logs (Java)

    目录 启用日志记录功能 有时候在进行自动化测试的时候控制台输出会帮忙定位问题,所以捕获控制台输出就显得很重要了~ 以下以selenium 4为例:  我们可以使用driver.manage().logs().get(LogType.BROWSER)代码在Selenium中检索日志,该代码将返回一个包含所有控制台日志的LogEntries对象。

    2024年02月05日
    浏览(38)
  • vue 模板中使用 console.log

    在 vue 工程中,你是否以为下述方式可以正常使用? 如果项目中这样使用,vue2 会直接抛出警告: [vue warn]: Property or method “console” is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the prope

    2023年04月21日
    浏览(31)
  • 【前端】webpack打包去除console.log

    需要在打包的时候,自动地去除掉所有console.log 也可以用 if(process.env.NODE_ENV === \\\'production\\\'){} 之类的条件判断包起来,打包的时候生产环境自动去掉console.log测试环境保留

    2024年02月09日
    浏览(37)
  • javascript实现久久乘法口诀表、document、write、console、log

    MDN console.log() 方法向 Web 控制台输出一条信息。这条信息可能是单个字符串(包括可选的替代字符串),也可能是一个或多个对象。 w3school log() 方法返回数字的自然对数(以 E 为底)。 如果参数 x 为负数,则返回 NaN 。 如果参数 x 为 0 ,则返回 -Infinity 。 MDN Console 对象提供了浏览

    2024年02月17日
    浏览(39)
  • 放弃 console.log 吧!用 Debugger 你能读懂各种源码

    很多同学不知道为什么要用 debugger 来调试,console.log 不行么? 还有,会用 debugger 了,还是有很多代码看不懂,如何调试复杂源码呢? 这篇文章就来讲一下为什么要用这些调试工具: 相信绝大多数同学使用 console.log 调试的,把想看的变量值打印在控制台。 这样能满足需求,

    2023年04月17日
    浏览(39)
  • 【IDE 小程序】小程序控制台 不打印 console.log问题

    全局搜索compress.drop_console(一般在config文件中),设置为false,再重新打开小程序即可

    2024年02月13日
    浏览(90)
  • 项目上线存在的缓存问题以及存在的debugger和console.log等问题

    下载uglifyjs-webpack-plugin插件 在vue.config文件中进行配置

    2024年01月20日
    浏览(36)
  • 如何在【微信小程序 】中的 webview 查看H5页面的console.log和调试H5页面?

    大家好我是 黑臂麒麟 ; 下面是开发微信小程序嵌入H5调试技巧: 问题: 在微信小程序页面中,web-view内嵌了另一个页面url,从小程序跳转到该H5页面的时候,无法看到该H5页面的控制台信息。那就没有办法了么?不,凭着锲而不舍的精神,在网络的海洋遨游许久。我查找到解

    2024年02月17日
    浏览(45)
  • vue2、vue-cli4以及vue3、vite打包去掉console.log

    webpack4会自带terser-webpack-plugin插件。 vue.config.js文件 vue-cli chainwebpack配置 webpack 配置terser chain链式配置 vite.config.ts文件 Esbuild#drop:For example, you can mark console.log as pure using --pure:console.log. This will cause these API calls to be removed safely when minification is enabled. Vite esbuild配置 esbuild prue配置

    2024年02月10日
    浏览(86)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包