-
Notifications
You must be signed in to change notification settings - Fork 30
/
Copy pathbrowserify-transforms.js
56 lines (47 loc) · 1.3 KB
/
browserify-transforms.js
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
var debug = require("local-debug")('browserify');
var extname = require('path').extname;
var browserify = require('browserify');
var watchify = require('watchify');
var path = require("path");
var transformMap = {
'.coffee': 'coffeeify',
'.gs': 'gorillaify',
'.iced': 'icsify',
'.ls': 'liveify',
'.coco': 'cocoify',
'.ts': 'typescriptifier'
};
module.exports = function (files, command) {
var ext = extname(files[0]);
var transform = ext != '.js';
var ret;
var b = browserify({
debug: true,
cache: {},
packageCache: {},
fullPaths: true
});
b.add(files);
b.bundle();
if (transform) {
ret = watchify(b, { extensions: [ext, '.js', '.json'] });
} else {
ret = watchify(b);
}
if (transform) ret.transform(transformMap[ext]);
if (command.transform && command.transform.length) {
command.transform.split(',').forEach(function (name) {
if (!name) return;
debug('Transform "%s" enabled', name);
ret.transform(path.join(process.cwd(), 'node_modules', name));
});
}
if (command.plugin && command.plugin.length) {
command.plugin.split(',').forEach(function (name) {
if (!name) return;
debug('Plugin "%s" enabled', name);
ret.plugin(require(path.join(process.cwd(), 'node_modules', name)));
});
}
return ret;
};