Dedupe strings as new variable declarations at the Program/top level.
Ref: https://twitter.com/mathias/status/734168515310194688
This plugin uses a native Map so it only supports node >= 0.12.
In
'use strict';
import z from 'a';
var a = ['a', 'long string', 'long string'];
function b() {
'use strict';
g('a');
h['a'];
}
Out
'use strict';
import z from 'a';
var _ = 'long string';
var a = [_2, _, _];
var _2 = 'a';
function b() {
'use strict';
g(_2);
h[_2];
}
# if babel isn't already installed, it creates a `babel` cli command
$ npm install babel-cli
$ npm install babel-plugin-dedupe-string-literals
minimumStringLength
- The minimum string length that will apply this transform. If the string length is too small, it will leave the string as is.
This means that a string like
'a'
with a length of 1 won't get a new variable created for it.
Check http://babeljs.io/docs/usage/babelrc/ for more info
.babelrc
// without options
{
"plugins": ["dedupe-string-literals"]
}
// with options
{
"plugins": [
["dedupe-string-literals", {
"minimumStringLength": 7 // defaults to 0
}]
]
}
Check http://babeljs.io/docs/usage/cli/ for more info
$ babel --plugins dedupe-string-literals script.js
Check http://babeljs.io/docs/usage/api/ for more info
require("babel-core").transform("code", {
plugins: ["dedupe-string-literals"]
});