Skip to content

Commit 8d546e5

Browse files
Add output dir option to bankai build, closes #333 (#416)
Provide a folder name in the third arg: ``` bankai build ./entry.js ./dist ```
1 parent 8d48abf commit 8d546e5

File tree

3 files changed

+24
-21
lines changed

3 files changed

+24
-21
lines changed

bin.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ var argv = minimist(process.argv.slice(2), {
8181
} else if (argv.version) {
8282
console.log(require('./package.json').version)
8383
} else if (cmd === 'build') {
84-
require('./lib/cmd-build')(path.join(entry), argv)
84+
var outdir = argv._[2]
85+
require('./lib/cmd-build')(path.join(entry), outdir, argv)
8586
} else if (cmd === 'inspect') {
8687
require('./lib/cmd-inspect')(path.join(entry), argv)
8788
} else if (cmd === 'start') {

lib/cmd-build.js

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,24 @@ var utils = require('./utils')
1414

1515
module.exports = build
1616

17-
function build (entry, opts) {
18-
var basedir = utils.dirname(entry)
19-
var outdir = path.join(basedir, 'dist')
17+
function build (entry, outdir, opts) {
18+
var bankaiOpts = {
19+
logStream: pumpify(pinoColada(), process.stdout),
20+
assert: false,
21+
watch: false
22+
}
23+
var compiler = bankai(entry, bankaiOpts)
24+
var log = compiler.log
25+
26+
if (!outdir) {
27+
outdir = path.join(compiler.dirname, 'dist')
28+
}
2029

2130
mkdirp(outdir, function (err) {
2231
if (err) return console.error(err)
2332

24-
var bankaiOpts = {
25-
logStream: pumpify(pinoColada(), process.stdout),
26-
assert: false,
27-
watch: false
28-
}
29-
var compiler = bankai(entry, bankaiOpts)
30-
var log = compiler.log
31-
3233
log.info('Compiling & compressing files\n')
33-
created(basedir, outdir + '/')
34+
created(compiler.dirname, outdir + '/')
3435

3536
compiler.on('error', function (topic, sub, err) {
3637
if (err.pretty) log.error(err.pretty)
@@ -69,7 +70,7 @@ function build (entry, opts) {
6970
// TODO: It'd be sick if we could optimize our paths to assets,
7071
// add etags to our tags and put them in the right dir.
7172
function copyFile (src, done) {
72-
var dest = path.join(outdir, path.relative(basedir, src))
73+
var dest = path.join(outdir, path.relative(compiler.dirname, src))
7374
var dirname = utils.dirname(dest)
7475

7576
if (dirname === dest) {
@@ -94,7 +95,7 @@ function build (entry, opts) {
9495
})
9596
function fin (err) {
9697
if (err) return done(err)
97-
created(basedir, src)
98+
created(compiler.dirname, dest)
9899
done()
99100
}
100101
}
@@ -194,7 +195,7 @@ function build (entry, opts) {
194195
function raw (done) {
195196
fs.writeFile(filename, buffer, function (err) {
196197
if (err) return done(err)
197-
created(basedir, filename)
198+
created(compiler.dirname, filename)
198199
done()
199200
})
200201
},
@@ -204,7 +205,7 @@ function build (entry, opts) {
204205
var outfile = filename + '.gz'
205206
fs.writeFile(outfile, compressed, function (err) {
206207
if (err) return done(err)
207-
created(basedir, outfile)
208+
created(compiler.dirname, outfile)
208209
done()
209210
})
210211
})
@@ -215,7 +216,7 @@ function build (entry, opts) {
215216
var outfile = filename + '.deflate'
216217
fs.writeFile(outfile, compressed, function (err) {
217218
if (err) return done(err)
218-
created(basedir, outfile)
219+
created(compiler.dirname, outfile)
219220
done()
220221
})
221222
})
@@ -225,7 +226,7 @@ function build (entry, opts) {
225226
var outfile = filename + '.br'
226227
fs.writeFile(outfile, compressed, function (err) {
227228
if (err) return done(err)
228-
created(basedir, outfile)
229+
created(compiler.dirname, outfile)
229230
done()
230231
})
231232
}).catch(done)

lib/cmd-start.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@ var bankai = require('../http')
77
module.exports = start
88

99
function start (entry, opts) {
10-
isElectronProject(process.cwd(), function (err, bool) {
10+
var handler = bankai(entry, opts)
11+
12+
isElectronProject(handler.dirname, function (err, bool) {
1113
if (err) throw err
1214
opts.electron = bool
1315

14-
var handler = bankai(entry, opts)
1516
var state = handler.state // TODO: move all UI code into this file
1617
var server = http.createServer(function (req, res) {
1718
if (req.type === 'OPTIONS') return cors(req, res)

0 commit comments

Comments
 (0)