How to remove global "use strict" added by babel
Babel 5
You'd blacklist "useStrict"
. For instance here's an example in a Gruntfile:
babel: {
options: {
blacklist: ["useStrict"],
// ...
},
// ...
}
Babel 6
Since Babel 6 is fully opt-in for plugins now, instead of blacklisting useStrict
, you just don't include the strict-mode
plugin. If you're using a preset that includes it, I think you'll have to create your own that includes all the others, but not that one.
As it has already been mentioned for Babel 6, it's the transform-es2015-modules-commonjs
preset which adds strict mode.
In case you want to use the whole es2015
preset without module transformations, put this in your .babelrc
file:
{
"presets": [
["es2015", { "modules": false }]
]
}
This will disable modules and strict mode, while keeping all other es2015 transformations enabled.
There's now a babel plugin that you can add to your config that will remove strict mode: babel-plugin-transform-remove-strict-mode
. It's a little ugly in that the "use strict"
gets added and then removed, but it makes the config much nicer.
Docs are in the GitHub repo: https://github.com/genify/babel-plugin-transform-remove-strict-mode
Your .babelrc ends up looking like this:
{
"presets": ["env"],
"plugins": ["transform-remove-strict-mode"]
}