UNPKG

2.24 kBPlain TextView Raw
1#!/usr/bin/env node
2
3var path = require('path');
4var fs = require('fs');
5var program = require('commander');
6var _ = require("lodash");
7var ems = require('..');
8
9var pkg = require('../package.json');
10
11program
12 .version(pkg.version)
13 .usage('<target>')
14 .option('-s, --source-maps', 'write sourcemap files')
15 .option('-e, --embed-mapping-comments', 'embed sourcemap url into created files')
16 .option('-c, --compress', 'create gzipped files')
17 .on('--help', function(){
18 console.log(' Examples:');
19 console.log('');
20 console.log(' $ ems precompile');
21 console.log(' $ ems precompile my-spa-application');
22 console.log(' $ ems precompile /path/to/my-spa-application');
23 console.log('');
24 })
25 .parse(process.argv);
26
27
28// Setup NODE ENV to production
29process.env.NODE_ENV = 'production';
30
31var target = program.args[0] || process.cwd();
32var targetPath = path.resolve(process.cwd(), target);
33if(fs.existsSync(targetPath)) {
34 var app = require(targetPath);
35 app.bootstrap({
36 assets: {
37 production: false
38 },
39 precompile: {
40 options: {
41 sourceMaps: program.sourceMaps,
42 embedMappingComments: program.embedMappingComments,
43 compress: program.compress
44 }
45 }
46 });
47
48 if(_.has(app, 'assetPipeline')) {
49 var manifest = new app.assetPipeline.Mincer.Manifest(
50 app.assetPipeline.environment,
51 app.config.precompile.target
52 );
53 var files = app.config.precompile.files || [];
54 if(app.config.precompile.fonts) {
55 files = _.concat(files, ems.getPrecompileFonts());
56 }
57
58 if(app.config.precompile.images) {
59 files = _.concat(files, ems.getPrecompileImages());
60 }
61 var data = manifest.compile(files, app.config.precompile.options);
62 for(var f in data.assets) {
63 var asset = data.assets[f];
64 console.log('compiled %s to %s', f, asset);
65 }
66 } else {
67 console.error('Target application does not have a mincer asset pipeline');
68 }
69} else {
70 console.error('Target application '+target+' does not exists');
71}
72
73