|
|
|
require( 'source-map-support' ).install();
|
|
|
|
|
|
|
|
var path = require( 'path' );
|
|
|
|
var sander = require( 'sander' );
|
|
|
|
var Promise = sander.Promise;
|
|
|
|
var handleError = require( './handleError' );
|
|
|
|
var rollup = require( '../' );
|
|
|
|
|
|
|
|
module.exports = function ( options ) {
|
|
|
|
if ( options._.length > 1 ) {
|
|
|
|
handleError({ code: 'ONE_AT_A_TIME' });
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( options._.length === 1 ) {
|
|
|
|
if ( options.input ) {
|
|
|
|
handleError({ code: 'DUPLICATE_IMPORT_OPTIONS' });
|
|
|
|
}
|
|
|
|
|
|
|
|
options.input = options._[0];
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
bundle( options ).catch( handleError );
|
|
|
|
} catch ( err ) {
|
|
|
|
handleError( err );
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
function bundle ( options, method ) {
|
|
|
|
var bundleOptions, file;
|
|
|
|
|
|
|
|
if ( !options.input ) {
|
|
|
|
handleError({ code: 'MISSING_INPUT_OPTION' });
|
|
|
|
}
|
|
|
|
|
|
|
|
return rollup.rollup({
|
|
|
|
entry: options.input,
|
|
|
|
external: options.external && options.external.split( ',' )
|
|
|
|
}).then( function ( bundle ) {
|
|
|
|
var generateOptions = {
|
|
|
|
dest: options.output,
|
|
|
|
format: options.format,
|
|
|
|
moduleId: options.id,
|
|
|
|
moduleName: options.name,
|
|
|
|
sourceMap: options.sourcemap
|
|
|
|
};
|
|
|
|
|
|
|
|
if ( options.output ) {
|
|
|
|
return bundle.write( generateOptions );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( options.sourcemap && options.sourcemap !== 'inline' ) {
|
|
|
|
handleError({ code: 'MISSING_OUTPUT_OPTION' });
|
|
|
|
}
|
|
|
|
|
|
|
|
var result = bundle.generate( generateOptions );
|
|
|
|
|
|
|
|
var code = result.code;
|
|
|
|
|
|
|
|
if ( options.sourcemap === 'inline' ) {
|
|
|
|
code += '\n//# sourceMappingURL=' + map.toUrl();
|
|
|
|
}
|
|
|
|
|
|
|
|
process.stdout.write( code );
|
|
|
|
});
|
|
|
|
}
|