UNPKG

941 BJavaScriptView Raw
1const path = require('path');
2const utils = require('./lib/utils.js');
3const browserify = require('browserify');
4const transform = require('./lib/transforms');
5const getOpts = require('./lib/getopts.js');
6
7module.exports = (filepath)=>{
8 const fullTargetPath = path.resolve(path.dirname(utils.getCaller().file), filepath);
9 const opts = getOpts({app:'', entry:{}}, fullTargetPath);
10 return new Promise((resolve, reject)=>{
11 browserify({
12 standalone : '___',
13 paths : opts.shared,
14 ignoreMissing : true,
15 node : true,
16 postFilter : (id, filepath, pkg)=>utils.shouldBundle(filepath, id, opts),
17 })
18 .require(fullTargetPath)
19 .transform((file)=>transform(file, opts), {global :true})
20 .bundle((err, buf)=>{
21 if(err) return reject(err);
22 const code = `'use strict'; let module = {}; (function() { ${buf.toString()}\nreturn module.exports;}())`;
23 return resolve(eval(code));
24 });
25 })
26};
\No newline at end of file