Skip to content
This repository has been archived by the owner on Mar 10, 2021. It is now read-only.

Strips Reactotron from production builds for Ignite-based apps.

Notifications You must be signed in to change notification settings

infinitered/babel-plugin-ignite-ignore-reactotron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

babel-plugin-ignite-ignore-reactotron

Why is this archived?

We really appreciate all the community support in the years since we first released babel-plugin-ignite-ignore-reactotron. Our focus has shifted to the latest version of Ignite, which does not have a plugin-based architecture (read more here). Feel free to fork this library and continue on its legacy if you want.

Strip Reactotron from production builds for Ignite-based apps (using ignite-ir-boilerplate).

YOLO

This is beta software.

Please give it a try and lemme know if it doesn't work for you. It should work on any ignite-ir-boilerplate-based Ignite app. If you have any problems, let me know. I'd love to create a generic babel plugin for any Reactotron-based app, not just Ignite.

Overview

I recommend you don't ship with Reactotron since it's a debugging tool. The problem is, you've already installed it as a dev dependency and peppered a bunch of console.tron statements everywhere.

So rather than go any deeper with if statements, this babel plugin will transform your code to ditch Reactotron in production.

Usage

# via npm
npm i --save-dev babel-plugin-ignite-ignore-reactotron
# via yarn
yarn add -D babel-plugin-ignite-ignore-reactotron

Modify your .babelrc in your home directory to add this plugin.

{
  "presets": ["react-native"],
  "env": {
    "production": {
      "plugins": ["ignite-ignore-reactotron"]
    }
  }
}

Files Affected

  1. Everywhere you have console.tron.log() or .display or .error (etc) will be deleted.
  2. Everywhere there is a console.tron by itself, it will become false.
  3. import './App/Config/ReactotronConfig' will be removed from index.ios.js and index.android.js.
  4. Any import or require with the word reactotron will be removed.
  5. console.tron.overlay(App) will become App in App/Containers/App.js
  6. console.tron.createSagaMonitor() will become null in App/Redux/CreateStore.js
  7. console.tron.createStore will become createStore in App/Redux/CreateStore.js

Testing First

To give this a trial-run in production mode:

react-native run-ios --configuration Release

Playground

Here's a playground.

Thanks

Change Log

0.3.0 - June 17, 2017

  • Fixes console.tron.log() calls with a noop to play nice inside catch blocks. (@skellock)

0.2.0 - June 7, 2017

  • Adds recipe for running only in production mode. (@rmevans9)

0.1.0 - June 6, 2017

  • Initial release

About

Strips Reactotron from production builds for Ignite-based apps.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •