blob: 61c8777ae4fe5217dc597e02ec9a679b62718590 (
plain)
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
|
const fs = require('fs-extra');
const Promise = require('q');
const browserify = require('browserify');
const babelify = require('babelify');
/**
* Compile a plugin to work with "gitbook-core" in the browser.
* @param {String} inputFile
* @param {String} outputFile
* @return {Promise}
*/
function compilePlugin(inputFile, outputFile) {
const d = Promise.defer();
const b = browserify({
standalone: 'GitBookPlugin'
});
b.add(inputFile);
b.external('react');
b.external('react-dom');
b.external('gitbook-core');
b.transform(babelify, {
presets: [
require('babel-preset-es2015'),
require('babel-preset-react')
]
});
fs.ensureFileSync(outputFile);
const output = fs.createWriteStream(outputFile);
b.bundle()
.pipe(output)
.on('error', (err) => d.reject(err))
.on('end', () => d.resolve());
return d.promise;
}
module.exports = compilePlugin;
|