项目 react+taro 编写的微信 小程序,什么命令,可以减少console的显示

在 Taro 项目中,为了减少 console 的显示(例如 console.log、console.info 等),可以通过配置 terser-webpack-plugin 来移除生产环境中的 console 调用。

配置步骤:

修改 index.js 文件

在 mini.webpackChain 中添加 terser-webpack-plugin 配置:

bash 复制代码
const config = {
  projectName: 'taro-react',
  date: '2025-5-10',
  designWidth: 750,
  deviceRatio: {
    640: 2.34 / 2,
    750: 1,
    828: 1.81 / 2
  },
  sourceRoot: 'src',
  outputRoot: 'dist',
  plugins: [],
  defineConstants: {},
  copy: {
    patterns: [],
    options: {}
  },
  framework: 'react',
  compiler: 'webpack5',
  cache: {
    enable: false
  },
  mini: {
    webpackChain(chain) {
      // 生产环境移除 console
      if (process.env.NODE_ENV === 'production') {
        chain.optimization.minimize(true);
        chain.plugin('terser').use(require('terser-webpack-plugin'), [{
          terserOptions: {
            compress: {
              drop_console: true, // 移除所有 console
              drop_debugger: true // 移除 debugger
            }
          }
        }]);
      }
    }
  },
  h5: {
    publicPath: '/',
    staticDirectory: 'static',
    postcss: {
      autoprefixer: {
        enable: true,
        config: {}
      }
    }
  }
};

module.exports = function (merge) {
  if (process.env.NODE_ENV === 'development') {
    return merge({}, config, require('./dev'));
  }
  return merge({}, config, require('./prod'));
};

构建生产环境代码

使用以下命令构建生产环境代码:

pnpm build:weapp --mode production

在 Taro 项目中,为了减少 console 的显示(例如 console.log、console.info 等),可以通过配置 terser-webpack-plugin 来移除生产环境中的 console 调用。

配置步骤:

  1. 修改 index.js 文件

    在 mini.webpackChain 中添加 terser-webpack-plugin 配置:

    javascript 复制代码
    const config = {
      projectName: 'taro-react',
      date: '2025-5-10',
      designWidth: 750,
      deviceRatio: {
        640: 2.34 / 2,
        750: 1,
        828: 1.81 / 2
      },
      sourceRoot: 'src',
      outputRoot: 'dist',
      plugins: [],
      defineConstants: {},
      copy: {
        patterns: [],
        options: {}
      },
      framework: 'react',
      compiler: 'webpack5',
      cache: {
        enable: false
      },
      mini: {
        webpackChain(chain) {
          // 生产环境移除 console
          if (process.env.NODE_ENV === 'production') {
            chain.optimization.minimize(true);
            chain.plugin('terser').use(require('terser-webpack-plugin'), [{
              terserOptions: {
                compress: {
                  drop_console: true, // 移除所有 console
                  drop_debugger: true // 移除 debugger
                }
              }
            }]);
          }
        }
      },
      h5: {
        publicPath: '/',
        staticDirectory: 'static',
        postcss: {
          autoprefixer: {
            enable: true,
            config: {}
          }
        }
      }
    };
    
    module.exports = function (merge) {
      if (process.env.NODE_ENV === 'development') {
        return merge({}, config, require('./dev'));
      }
      return merge({}, config, require('./prod'));
    };
  2. 构建生产环境代码

    使用以下命令构建生产环境代码:

    bash 复制代码
    pnpm build:weapp --mode production

    或者,如果你使用的是 npm/yarn:

    bash 复制代码
    npm run build:weapp --mode production
    # 或
    yarn build:weapp --mode production
  3. 效果

    • 生产环境中,所有 console.log、console.info、console.debug 等调用都会被移除。
    • console.warn 和 console.error 不会被移除(用于调试和错误追踪)。
    • debugger 语句也会被移除。

注意事项:

  • 确保 terser-webpack-plugin 已安装(Taro 默认会安装)。

  • 在开发环境中,console 调用仍然会保留,方便调试。

  • 如果需要移除所有类型的 console,可以在 terserOptions.compress 中添加更多配置,例如:

    javascript 复制代码
    compress: {
      drop_console: true,
      drop_debugger: true,
      pure_funcs: ['console.log', 'console.info', 'console.debug', 'console.warn', 'console.error']
    }

Similar code found with 2 license types

相关推荐
Highcharts.js1 天前
Highcharts 集成到 React 或 Vue 项目中时,如何高效地使用 TypeScript技巧?
vue.js·人工智能·react.js·typescript·前端框架·highcharts
liuchangng2 天前
React 19 + Vite 6 实战:从教材 PDF 到 866 词间隔重复单词 App
前端·react.js·pdf·vite·开源项目
鸿蒙开发2 天前
Three.js 首帧卡顿排查:compileAsync 之后,为什么还会停一下?
react.js·three.js
阿砾3 天前
微信群消息处理:回调乱序、自己发的消息、群内真实发送者
微信
小李科技3 天前
【性能优化】事件委托:目标定位与 React/Vue 实战
前端·vue.js·react.js·面试·性能优化·前端框架
csj503 天前
前端基础之《React(16)—Modal组件封装》
前端·react.js
承渊政道3 天前
飞牛NAS部署Hermes AI Agent:接入DeepSeek、微信与公网访问完整教程
人工智能·微信·nas·deepseek·hermes
高晶4 天前
微信小程序实战:iOS 降级查询工具从零开发
微信·程序员
软擎4 天前
花店节日布置怎么留记录?用轻虾导出助手把花材替换、现场尺寸与撤场清点钉在一起
微信
jaysee-sjc5 天前
【苍穹外卖】Day12:工作台数据看板与 Excel 报表导出
java·开发语言·数据库·spring boot·spring·微信·excel