grunt-ejs

A grunt task for rendering ejs templates.

grunt-ejs

A Grunt task for compiling ejs templates.

Install this grunt plugin next to your project's Gruntfile.js with: npm install grunt-ejs --save-dev.

Then add this line to your project's Gruntfile.js:

grunt.loadNpmTasks('grunt-ejs');

Add the task to your config and specify the destination for the compiled file:

grunt.initConfig({
  ejs: {
    all: {
      src: ['app/**/*.ejs', '!app/partials/**/*'],
      dest: 'dist/',
      expand: true,
      ext: '.html',
    },
  },
});

Use options to pass data and helpers to the templates:

Gruntfile.js:

grunt.initConfig({
  ejs: {
    all: {
      options: {
        title: 'My Website',
        urlfunction(url) {
          return 'http://example.com/formatted/url/' + url;
        },
      },
      src: ['app/**/*.ejs', '!app/partials/**/*'],
      dest: 'dist/',
      expand: true,
      ext: '.html',
    },
  },
});

app/index.ejs:

<html>
  <head>
    <title><%= title %></title>
  </head>
  <body>
    <a href="<%= url('home.html') %>">Home Page</a>
  </body>
</html>

Ideally all your helpers and non-app specific config should be another module and merged in like this:

grunt.initConfig({
  ejs: {
    all: {
      options: grunt.util._.merge(require('my-helpers'), {
        title: 'My Website'
      }),
      src: 'index.ejs',
      dest: 'index.html',
    },
  },
});
  • 0.3.0
    • update ejs to 2.2.3
    • fix file options
  • 0.2.0 update ejs to 1.0.0
  • 0.1.0 initial release

Copyright (c) 2014 Kyle Robinson Young Licensed under the MIT license.