Javascript 是否删除生产生成中的控制台日志语句?

Javascript 是否删除生产生成中的控制台日志语句?,javascript,reactjs,console,babeljs,console.log,Javascript,Reactjs,Console,Babeljs,Console.log,我有一个基本的react应用程序(使用创建react应用程序创建) 我已经通过了一些相关链接,如巴贝尔插件安装 npm i babel插件转换删除控制台--保存 我已经将上面的配置包含到babel.rc文件中,但仍然不能解决我的问题。我能够看到生产构建中的日志。请告诉我哪里出了问题 您可以在src/App.js的应用程序根组件中尝试以下操作: if (process.env.REACT_APP_STAGE === 'PROD') console.log = function no_cons

我有一个基本的react应用程序(使用创建react应用程序创建)
我已经通过了一些相关链接,如巴贝尔插件安装 npm i babel插件转换删除控制台--保存


我已经将上面的配置包含到babel.rc文件中,但仍然不能解决我的问题。我能够看到生产构建中的日志。请告诉我哪里出了问题

您可以在
src/App.js
的应用程序根组件中尝试以下操作:

if (process.env.REACT_APP_STAGE === 'PROD')
  console.log = function no_console() {};

返回之前

您可以尝试使用这些包覆盖配置:

注意:根据的文件,这将打破CRA提供的“保证”。所以你在使用前要小心

npm i -D customize-cra react-app-rewired babel-plugin-transform-remove-console
修改package.json,将
react脚本
替换为
react应用程序重新布线
,除了
拒绝
。完成后,脚本应如下所示:

"scripts": {
 "start": "react-app-rewired start",
 "build": "react-app-rewired build",
 "test": "react-app-rewired test",
 "eject": "react-scripts eject"
}
然后创建一个文件:

touch config-overrides.js
最后,在运行
npm run build
之后,将删除所有
console.log


另外,关于这个类似的问题,我有另一个答案,您也可以查看其他答案。

如果您使用create react应用程序,它可能不会注意您的自定义babel配置,因为它有自己的所有配置。您可能需要弹出应用程序才能使其正常工作。请查看并@Dr_Derp,寻找一种无需弹出应用程序即可完成的方法。无需弹出:
touch config-overrides.js
// config-overrides.js
const { override, addBabelPlugins } = require('customize-cra')

module.exports = override(
  addBabelPlugins(
    "transform-remove-console"
  )
)