mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-17 16:15:22 +00:00
42 lines
963 B
JavaScript
42 lines
963 B
JavaScript
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;
|