babel-plugin-ignite-ignore-reactotron
v0.3.0
Published
Strip `Reactotron` from production builds for Ignite-based apps (using `ignite-ir-boilerplate`).
Downloads
10,953
Readme
babel-plugin-ignite-ignore-reactotron
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
yard 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
- Everywhere you have
console.tron.log()
or.display
or.error
(etc) will be deleted. - Everywhere there is a
console.tron
by itself, it will becomefalse
. import './App/Config/ReactotronConfig'
will be removed fromindex.ios.js
andindex.android.js
.- Any
import
orrequire
with the wordreactotron
will be removed. console.tron.overlay(App)
will becomeApp
inApp/Containers/App.js
console.tron.createSagaMonitor()
will becomenull
inApp/Redux/CreateStore.js
console.tron.createStore
will becomecreateStore
inApp/Redux/CreateStore.js
Testing First
To give this a trial-run in production mode:
react-native run-ios --configuration Release
Thanks
- Richard Evans for helping me debug the babel env environment.
- James Kyle for the amazing babel handbook.
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