node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey »



Compile coffee-script, uglify inline scripts in nunjucks




First configure the custom tag:

var scriptTag = require("nunjucks-script-tag");
var express = require("express");
var nunjucks = require("nunjucks");
var app = express();
var env = nunjucks.configure('views', {
    express: app
scriptTag.configure(env); //do this! 

Now you can use it in your html templates:

{% script pretty=true %}
<script type='text/javascript'>
    var foo = function(){
<script type='text/coffeescript'>
    baz = -> console.log 'qux'
{% endscript %}

which will produce the following html:

<script type='text/javascript'>
var foo = function(){
(function() {
  var baz;
  baz = function() {
    return console.log('qux');

Tag Params

coffee - if true you dont need to specify the type attribute on the script tags - assumes ALL tags are coffeescript pretty - make the output prettier by dedenting it uglify - uglify the resulting code. Setting true will make the next few options have effect: mange - if uglify=true - also mange the code compress - if uglify=true - also compress the code

These are all defaulted to false, but you can override that behavior by passing in a map of defaults as a 2nd arg to the configure method:

scriptTag.configure(env, {uglify:true, compress: true});