@babel/plugin-transform-template-literals

template-literals - 图1info

This plugin is included in @babel/preset-env

Example

In

JavaScript

  1. `foo${bar}`;

Out

JavaScript

  1. "foo".concat(bar);

Installation

  • npm
  • Yarn
  • pnpm
  1. npm install --save-dev @babel/plugin-transform-template-literals
  1. yarn add --dev @babel/plugin-transform-template-literals
  1. pnpm add --save-dev @babel/plugin-transform-template-literals

Usage

Without options:

babel.config.json

  1. {
  2. "plugins": ["@babel/plugin-transform-template-literals"]
  3. }

With options:

babel.config.json

  1. {
  2. "plugins": [
  3. [
  4. "@babel/plugin-transform-template-literals",
  5. {
  6. "loose": true
  7. }
  8. ]
  9. ]
  10. }

Via CLI

Shell

  1. babel --plugins @babel/plugin-transform-template-literals script.js

Via Node API

JavaScript

  1. require("@babel/core").transformSync("code", {
  2. plugins: ["@babel/plugin-transform-template-literals"],
  3. });

Options

loose

boolean, defaults to false.

template-literals - 图2caution

Consider migrating to the top level mutableTemplateObject assumption.

babel.config.json

  1. {
  2. "assumptions": {
  3. "mutableTemplateObject": true
  4. }
  5. }

When mutableTemplateObject is 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

JavaScript

  1. `foo${bar}`;

Out

JavaScript

  1. "foo" + bar;

template-literals - 图3tip

You can read more about configuring plugin options here