weex-scripter
Version:
Weex <script> transformer
29 lines (25 loc) • 719 B
JavaScript
var path = require('path')
var execSync = require('child_process').execSync
var resolveBin = require('resolve-bin')
function replaceRequire(code) {
var count = 0
var hasRequire = false
code = code.replace(/require/g, function ($0) {
hasRequire = true
return count++ < 5 ? 'browserifyRequire' : $0
})
if (hasRequire) {
code = 'var ' + code
}
return code
}
function getBundle(requires) {
var cmd = '"' + resolveBin.sync('browserify') + '"'
Object.keys(requires).forEach(function (key) {
cmd += ' -r ' + '"' + requires[key] + ':' + key + '"'
})
var bundleCode = execSync(cmd)
bundleCode = replaceRequire(bundleCode.toString())
return bundleCode
}
exports.getBundle = getBundle