Skip to content
This repository has been archived by the owner. It is now read-only.
ES6 template strings compiled to ES5.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
test Update dependencies. Oct 27, 2014
.travis.yml Add Travis CI config. Apr 17, 2014
LICENSE Initial commit of es6-templates. Apr 15, 2014 Replace the "square" org with the "esnext" org. Oct 27, 2014
bower.json v0.2.3 Sep 2, 2016
package.json fix: use correct name for Apache 2 license Mar 29, 2018


Compiles JavaScript written using template strings to use ES5-compatible syntax. For example, this:

var name = "Nicholas",
    msg = `Hello, ${name}!`;

console.log(msg);    // "Hello, Nicholas!"

compiles to this:

var name = "Nicholas",
    msg = "Hello, " + name + "!";

console.log(msg);    // "Hello, Nicholas!"

For more information about the proposed syntax, see the TC39 wiki page on template strings.


$ npm install es6-templates


$ node
> var compile = require('es6-templates').compile;
> compile('`Hey, ${name}!`')
{ 'code': ..., 'map': ... }

Without interpolation:

// becomes

With interpolation:

`Hey, ${name}!`
// becomes
"Hey, " + name + "!"

With a tag expression:

escape `<a href="${href}">${text}</a>`
// becomes
escape(function() {
  var strings = ["\u003Ca href=\"", "\"\u003E", "\u003C/a\u003E"];
  strings.raw = ["\u003Ca href=\"", "\"\u003E", "\u003C/a\u003E"];
  return strings;
}(), href, text);

Or work directly with the AST:

$ node
> var transform = require('es6-templates').transform;
> transform(inputAST)

Transforming ASTs is best done using recast to preserve formatting where possible and for generating source maps.


Browserify support is built in.

$ npm install es6-templates  # install local dependency
$ browserify -t es6-templates $file


Build Status


First, install the development dependencies:

$ npm install

Then, try running the tests:

$ npm test

Pull Requests

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Any contributors to the master es6-templates repository must sign the Individual Contributor License Agreement (CLA). It's a short form that covers our bases and makes sure you're eligible to contribute.

When you have a change you'd like to see in the master repository, send a pull request. Before we merge your request, we'll make sure you're in the list of people who have signed a CLA.

You can’t perform that action at this time.