This repository was archived by the owner on Jul 27, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 43
Expand file tree
/
Copy pathbin.js
More file actions
79 lines (65 loc) · 2.38 KB
/
bin.js
File metadata and controls
79 lines (65 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/**
* Copyright 2012 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the 'License');
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an 'AS IS' BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var opt = require('opt').create();
var compiler = require('./module-compiler.js')
var config = opt.configSync({
process_common_js_modules: true,
source_map_format: 'V3',
// Triggers generation of one output file per CJS module.
module: 'auto',
create_source_map: '%outname%.map',
externs: []
}, []);
function usage() {
console.log('Example: node module-compiler/bin.js --module_path=' +
'./test/fixtures/sample-module --entry_module=app --output_path=../build/');
opt.usage();
process.exit(0);
}
var path;
var watch = true;
opt.option(['-h', '--help'], usage, 'This help screen.');
opt.option(['-p', '--module_path'], function (p) {
console.log(p);
path = p.trim();
}, 'The search path for modules.');
opt.option(['-e', '--entry_module'], function (entryModule) {
var filename = entryModule.trim();
if (filename && !/\.js$/) {
filename = filename + '.js';
}
config.common_js_entry_module = filename;
}, 'The file name of the main module from which all dependencies are derived.');
opt.option(['-o', '--output_path'], function (path) {
config.module_output_path_prefix = (path.trim() || '').replace(/\/$/, '') + '/';
config.output_module_dependencies = './module-graph.json';
}, 'The path to the output directory for compiled modules.');
opt.option(['--no-watch'], function () {
watch = false;
}, 'Do not keep this program alive and watch for changes in input modules.');
opt.option(['--externs'], function (extern) {
externs.push(extern);
}, 'Path to an extern file for closure compiler.');
opt.optionWith(process.argv);
if (!path || path.length < 1 || !config.common_js_entry_module ||
!config.module_output_path_prefix) {
usage();
}
compiler.compile(path, config);
if (watch) {
compiler.watch(path, config);
}
// TODO get rid of the chdir dependency