React Native 0.60.3 babel-plugin-transform-remove-console不起作用

时间:2019-08-28 12:20:45

标签: reactjs react-native babel

我试图从我的本机应用程序的输出中删除console.log输出,但是当我运行

  

ENVFILE = .env.production react-native run-android --variant = release

  

adb logcat

我仍然看到我的应用程序数据已记录到控制台。

我使用了以下文档:https://facebook.github.io/react-native/docs/performance.html#using-consolelog-statements

这是我的.babelrc文件:

{
  "presets": ["react-native"],
  "env": {
    "production": {
      "plugins": ["transform-remove-console"]
    }
  }
}

我想念什么? 我对本机0.60.3 并使用“ babel-plugin-transform-remove-console”:“ ^ 6.9.4”,

2 个答案:

答案 0 :(得分:1)

使用babel.config.js代替.babelrc,看来process.env.BABEL_ENV用于确定是否包括在env.production下列出的配置。但是,在构建过程中,process.env.BABEL_ENV被设置为undefined

要解决此问题,我将根据process.env.BABEL_ENVprocess.env.NODE_ENV是否指示生产版本返回一个不同的对象。

YMMV。

module.exports = function(api) {
  api.cache(true); // necessary
  if (process.env.NODE_ENV === 'production' || process.env.BABEL_ENV === 'production') {
    return {
      "presets": ["module:metro-react-native-babel-preset"],
      "plugins": ["react-native-paper/babel", "transform-remove-console"]
    }
  } else {
    return {
      "presets": ["module:metro-react-native-babel-preset"],
    }
  }
}

答案 1 :(得分:0)

我有"@babel/core": "^7.5.5""react-native": "^0.60.5"
React Native Documentation中描述的方法不适用于我。

经过多次尝试和错误并在GitHub上探讨了问题后,我开始使用它了:

babel.config.js 中添加此内容-

module.exports = api => {
  const babelEnv = api.env();
  const plugins = [];
  //change to 'production' to check if this is working in 'development' mode
  if (babelEnv !== 'development') {
    plugins.push(['transform-remove-console', {exclude: ['error', 'warn']}]);
  }
  return {
    presets: ['module:metro-react-native-babel-preset'],
    plugins,
  };
};
  

要查看使用npm start -- --reset-cache

运行的更改


更多信息,请参见