1 | #!/bin/sh
|
2 |
|
3 | ROOT=`dirname "$0"`
|
4 | VERSION=`node -e "var fs = require('fs'); var p = JSON.parse(fs.readFileSync('./package.json')); console.log(p.version)"`
|
5 | TYPE=""
|
6 |
|
7 | output="$1.js"
|
8 | minoutput="$1.min.js"
|
9 | if [ -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"
|
14 | else
|
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)"
|
19 | fi
|
20 |
|
21 | rm -f "$output"
|
22 |
|
23 | echo "// Browser bundle of nunjucks $VERSION $TYPE\n" >> "$output"
|
24 | echo "(function() {" >> "$output"
|
25 | echo "var modules = {};" >> "$output"
|
26 |
|
27 | for 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"
|
35 | done
|
36 |
|
37 | echo "var nunjucks;" >> $output
|
38 |
|
39 | cat index.js | \
|
40 | perl -ne 's/require\(\W*\.\/src\/([\w-]*)\W*\)/modules["$1"]/; print' | \
|
41 | sed -e 's/module.exports/nunjucks/' \
|
42 | >> "$output"
|
43 |
|
44 | echo "
|
45 | nunjucks.require = function(name) { return modules[name]; };
|
46 |
|
47 | if(typeof define === 'function' && define.amd) {
|
48 | define(function() { return nunjucks; });
|
49 | }
|
50 | else {
|
51 | window.nunjucks = nunjucks;
|
52 | if(typeof module !== 'undefined') module.exports = nunjucks;
|
53 | }
|
54 | " >> "$output"
|
55 |
|
56 | echo "})();" >> "$output"
|
57 |
|
58 | echo "// Browser bundle of nunjucks $VERSION $TYPE\n" > "$minoutput"
|
59 | ./node_modules/.bin/uglifyjs "$output" >> "$minoutput"
|