How to remove / disable console.log() from a node module

Viewed 1842

I am pushing code to production that uses a package that calls console.log() every time I call a specific one of its functions.

This function gets called thousands of times simultaneously in my code and I do not want the logging to slow down the execution time or clutter the logs.

On local I have gone into the node module and commented the log out, but production is auto deployed and just runs npm install before running.

Is there a way for me to either comment out the line in production in a way that it will not come back every time it auto deploys or a way for me to ban console logs from the module?

2 Answers

console.log itself can be overwritten with an empty function.

// backup just in case you need it later somewhere
var oldConsoleLog = window.console.log;
window.console.log = () => {};

However, it's recommended to do some investigation on the troublesome package, most packages log only in their development build, maybe there is a production version of the package you should use.

Also, there is some babel/webpack plugin that can remove the console statements for you. For example babel-plugin-transform-remove-console

You can try redefining the console.log function by writing console.log = function() {} at the beginning.

Related