var logger = function logger(...messages){
if(process.env.NODE_ENV === 'development'){
console.log(messages);
}
}
exports.logger = logger;
现在将这个logger.js文件导入到您的组件中。
import React from 'react';
var logger = require('../logger.js').logger;
class Demo extends React.Component{
constructor(props){
}
render(){
return(
<p>Hello i am demo component</p>
);
}
componentDidMount(){
logger('I am printing only in developmet')
}
}
export default Demo;
module.exports = {
optimization: {
minimizer: [
new TerserPlugin({
sourceMap: true, // Must be set to true if using source-maps in production
terserOptions: {
compress: {
drop_console: true, // << this needs only to remove console.log //
},
},
}),
],
},
};
7条答案
按热度按时间nfg76nw01#
我使用这种方法是为了避免弹出
react-scripts
index.js
fruv7luv2#
我创建了
helper
文件夹,其中包含名为ConsoleHelper.js
的文件所以,用
ConsoleHelper(data)
代替console.log(data)
;weylhg0b3#
这是我使用
craco
的解决方案安装https://babeljs.io/docs/en/babel-plugin-transform-remove-console/
并将craco.config.js更新为
bvn4nwqk4#
这是我使用
craco
的解决方案。craco.config.js
wwtsj6pe5#
简单的方法是在根目录下创建一个名为
logger.js
的新文件登录器. js中
现在将这个logger.js文件导入到您的组件中。
9rbhqvlz6#
对于那些不想更改webpack配置的用户,这个表达式也可以完成这项工作,而且不需要导入帮助函数:
对于更大或更冗长的日志记录应用程序,更改webpack配置当然是更优雅的解决方案。
对于VS代码用户我想指出设置日志点的可能性,如果这符合您的需要,则完全省略该语句。
yeotifhr7#
解决这个问题的简单方法是帮助其他面临同样问题的人。
参考:https://stackoverflow.com/a/41041580/3574669
参考文献中的建议,它需要在文件"webpack.config.js"中进行更改。* create-react-app在内部使用webpack和配置文件,但无法在我的应用程序根目录中添加webpack.config.js以应用更改。这需要离开create-react-app设置,并为webpack和配置构建自己的设置。在探索了很多并编写了示例代码之后,我发现这并不容易。*
因为我非常满意create-react-app,所以也不想忽略它的好处。
最后,我对
node_modules/react-scripts/config/webpack.config.js
做了一个简单的修改,添加了参考文献中提到的drop_console: true,
行。参考文献中建议的代码如下所示:这对我来说很好用,通过简单的更改,我的生产构建应用程序中没有控制台日志。
我使用的是
"react-scripts": "3.0.1",
* 重要提示:如果使用CI/CD,请勿使用此方法 *