paint-brush
How to Remove Console Statements From Production Build in 3 Easy Waysby@clumsycoder
9,262 reads
9,262 reads

How to Remove Console Statements From Production Build in 3 Easy Ways

by Kaushal JoshiAugust 20th, 2022
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

In this article, we discuss different ways by which you can prevent log statements from going into the production code. The simplest practice removes console statements from the production build, leaving you with a great debugging tool during development. You can follow this method only if you have integrated ESLint with your app. If you are using React or Next, you can paste this into the entry file of your application. If the application is in development mode, it can still use console statements if the app is in. development mode.

Company Mentioned

Mention Thumbnail
featured image - How to Remove Console Statements From Production Build in 3 Easy Ways
Kaushal Joshi HackerNoon profile picture


Whether you are a beginner JavaScript Developer or an experienced developer working in the biggest organization in the world, you can't deny using console statements to debug your code. Even though nothing is wrong with doing it, you might expose some sensitive data to end users if you forget to remove those before committing the code.


In this quick article, let us discuss different ways by which you can prevent log statements from going into the production code.


Overriding console Methods

This simplest practice removes console statements from the production build, leaving you with a great debugging tool during development.


In this method, we check the node environment of the app and override console functions with empty functions if the environment is not development. By doing this, you can still use console statements if the app is in development mode.


Paste the following code into the entry file of your application. In most cases, it would be named index.js or app.js.


if (process.env.NODE_ENV !== "development") {
    console.log = () => {};
    console.debug = () => {};
    console.info = () => {};
    console.warn = () => {};
}


If you are using React or Next, you can paste this in src/index.js or pages/_app.js, respectively.


ES-Lint

If you are using the ESLint configuration, you can add the no-console rule to ensure that console statements are not committed to the version control. You can even exclude some statements (like .warn() or .error()) if you wish.


However, you can follow this method only if you have integrated ESLint with your app.


If you have ESLint, add the following rule in the .eslintrc.json file.

{
    "rules": {
        "no-console": "error",
    }
}


This rule will throw an error if a console statement is encountered. You can change the behavior by replacing error with warning. Similarly, you can exclude specific methods by adding an allow option, like this:


{
    "rules": {
        "no-console": ["error", {
            allow: ["warn", "error"]
        }],
    }
}


This will allow console.warn() and console.error() but throw an error in other cases. You can read more about this rule on their docs.


Using a Babel Plugin

A plugin called babel-plugin-transform-remove-console removes all console statements from your application. All you need to do is install it and add it to the .babelrc file.


Install this plugin by NPM or Yarn like this:

# NPM
npm i babel-plugin-transform-remove-console

# Yarn
yarn add babel-plugin-transform-remove-console


Then open .babelrc and paste the following. If the file doesn't exist, create a new file with the same name in the root directory.


{
    "env": {
        "production": {
            "plugins": ["transform-remove-console"]
        }
    }
}


You can find more information about this library at the NPM repository.


Wrapping Up!

The console statements are often not taken seriously. Removing them from production is always a best practice while building apps. But it could cause performance or security issues if you mishandle them.


If you found this article helpful, share this within your socials so everyone can follow best practices.


I write blogs about web development, open source, and personal experiences.


If you want to say hi or need help with frontend or technical writing, catch me on Twitter, Showwcase, and Peerlist.


Until then, happy logging! 👨‍💻



Also published here.