* Lazy load tagged template literal strings * Update snapshots to reflect lazy loading * Use pure annotation and remove unnecessary parenthesized expression * Update snapshots * Optimize lazy loading by doing assignment within logical expression * Update snapshots to reflect optimization * Use re-define function pattern to avoid hitting function size deopts * Update snapshots to reflect the usage of the redefining function pattern
@babel/plugin-transform-template-literals
Compile ES2015 template literals to ES5
Example
In
`foo${bar}`;
Out
"foo".concat(bar);
Installation
npm install --save-dev @babel/plugin-transform-template-literals
Usage
Via .babelrc (Recommended)
.babelrc
Without options:
{
"plugins": ["@babel/plugin-transform-template-literals"]
}
With options:
{
"plugins": [
["@babel/plugin-transform-template-literals", {
"loose": true
}]
]
}
Via CLI
babel --plugins @babel/plugin-transform-template-literals script.js
Via Node API
require("@babel/core").transform("code", {
plugins: ["@babel/plugin-transform-template-literals"]
});
Options
loose
boolean, defaults to false.
When true, tagged template literal objects aren't frozen. All template literal expressions and quasis are combined with the + operator instead of with String.prototype.concat.
When false or not set, all template literal expressions and quasis are combined with String.prototype.concat. It will handle cases with Symbol.toPrimitive correctly and throw correctly if template literal expression is a Symbol(). See babel/babel#5791.
In
`foo${bar}`;
Out
"foo" + bar;