UNPKG

1.75 kBPlain TextView Raw
1#!/bin/sh
2
3ROOT=`dirname "$0"`
4VERSION=`node -e "var fs = require('fs'); var p = JSON.parse(fs.readFileSync('./package.json')); console.log(p.version)"`
5TYPE=""
6
7output="$1.js"
8minoutput="$1.min.js"
9if [ -z "$SLIM" ]; then
10 # Listed in order of dependency
11 files="object.js lib.js nodes.js runtime.js lexer.js parser.js transformer.js
12 compiler.js filters.js globals.js loader.js web-loaders.js loaders.js
13 environment.js"
14else
15 # Listed in order of dependency
16 files="object.js lib.js runtime.js loader.js web-loaders.js loaders.js filters.js
17 globals.js environment.js"
18 TYPE="(slim, only works with precompiled templates)"
19fi
20
21rm -f "$output"
22
23echo "// Browser bundle of nunjucks $VERSION $TYPE\n" >> "$output"
24echo "(function() {" >> "$output"
25echo "var modules = {};" >> "$output"
26
27for file in $files; do
28 name=${file%%.*}
29 echo "(function() {" >> "$output"
30 cat "src/$file" | \
31 perl -ne 's/^(.*)require\(\W*([\w-]*)\W*\)(.*)$/$1modules["$2"]$3/; print' | \
32 sed -e "s/module.exports/modules['$name']/" \
33 >> "$output"
34 echo "})();" >> "$output"
35done
36
37echo "var nunjucks;" >> $output
38
39cat index.js | \
40 perl -ne 's/require\(\W*\.\/src\/([\w-]*)\W*\)/modules["$1"]/; print' | \
41 sed -e 's/module.exports/nunjucks/' \
42 >> "$output"
43
44echo "
45nunjucks.require = function(name) { return modules[name]; };
46
47if(typeof define === 'function' && define.amd) {
48 define(function() { return nunjucks; });
49}
50else {
51 window.nunjucks = nunjucks;
52 if(typeof module !== 'undefined') module.exports = nunjucks;
53}
54" >> "$output"
55
56echo "})();" >> "$output"
57
58echo "// Browser bundle of nunjucks $VERSION $TYPE\n" > "$minoutput"
59./node_modules/.bin/uglifyjs "$output" >> "$minoutput"