UNPKG

1.85 kBPlain TextView Raw
1var execSync = require('child_process').execSync;
2var exec = function (cmd) {
3 execSync(cmd, {stdio: 'inherit'});
4};
5
6/* global jake, task, desc, publishTask */
7
8task('build', ['lint', 'clean', 'browserify', 'minify'], function () {
9 console.log('Build completed.');
10});
11
12desc('Cleans browerified/minified files and package files');
13task('clean', ['clobber'], function () {
14 jake.rmRf('./ejs.js');
15 jake.rmRf('./ejs.min.js');
16 console.log('Cleaned up compiled files.');
17});
18
19desc('Lints the source code');
20task('lint', function () {
21 exec('./node_modules/.bin/eslint \"**/*.js\" Jakefile');
22 console.log('Linting completed.');
23});
24
25task('browserify', function () {
26 exec('./node_modules/browserify/bin/cmd.js --standalone ejs lib/ejs.js > ejs.js');
27 console.log('Browserification completed.');
28});
29
30task('minify', function () {
31 exec('./node_modules/uglify-js/bin/uglifyjs ejs.js > ejs.min.js');
32 console.log('Minification completed.');
33});
34
35task('doc', function (dev) {
36 jake.rmRf('out');
37 var p = dev ? '-p' : '';
38 exec('./node_modules/.bin/jsdoc ' + p + ' -c jsdoc.json lib/* docs/jsdoc/*');
39 console.log('Documentation generated.');
40});
41
42task('docPublish', ['doc'], function () {
43 console.log('Pushing docs to gh-pages...');
44 exec('./node_modules/.bin/git-directory-deploy --directory out/');
45 console.log('Docs published to gh-pages.');
46});
47
48task('test', ['lint'], function () {
49 exec('./node_modules/.bin/mocha');
50});
51
52publishTask('ejs', ['build'], function () {
53 this.packageFiles.include([
54 'Jakefile',
55 'README.md',
56 'LICENSE',
57 'package.json',
58 'ejs.js',
59 'ejs.min.js',
60 'lib/**',
61 'test/**'
62 ]);
63});
64
65jake.Task.publish.on('complete', function () {
66 console.log('Updating hosted docs...');
67 console.log('If this fails, run jake docPublish to re-try.');
68 jake.Task.docPublish.invoke();
69});