@ -34,7 +34,6 @@ export function compile(input, opts) {
const options = {
const options = {
name : opts.name ,
name : opts.name ,
format : opts.format ,
format : opts.format ,
sourceMap : opts.sourcemap ,
css : opts.css !== false ,
css : opts.css !== false ,
dev : opts.dev ,
dev : opts.dev ,
immutable : opts.immutable ,
immutable : opts.immutable ,
@ -45,13 +44,13 @@ export function compile(input, opts) {
if ( isDir ) {
if ( isDir ) {
mkdirp ( output ) ;
mkdirp ( output ) ;
compileDirectory ( input , output , options );
compileDirectory ( input , output , options , opts . sourcemap );
} else {
} else {
compileFile ( input , output , options );
compileFile ( input , output , options , opts . sourcemap );
}
}
}
}
function compileDirectory ( input , output , options ) {
function compileDirectory ( input , output , options , sourcemap ) {
fs . readdirSync ( input ) . forEach ( file = > {
fs . readdirSync ( input ) . forEach ( file = > {
const src = path . resolve ( input , file ) ;
const src = path . resolve ( input , file ) ;
const dest = path . resolve ( output , file ) ;
const dest = path . resolve ( output , file ) ;
@ -60,12 +59,13 @@ function compileDirectory(input, output, options) {
compileFile (
compileFile (
src ,
src ,
dest . substring ( 0 , dest . lastIndexOf ( '.html' ) ) + '.js' ,
dest . substring ( 0 , dest . lastIndexOf ( '.html' ) ) + '.js' ,
options
options ,
sourcemap
) ;
) ;
} else {
} else {
const stats = fs . statSync ( src ) ;
const stats = fs . statSync ( src ) ;
if ( stats . isDirectory ( ) ) {
if ( stats . isDirectory ( ) ) {
compileDirectory ( src , dest , options );
compileDirectory ( src , dest , options , sourcemap );
}
}
}
}
} ) ;
} ) ;
@ -74,7 +74,7 @@ function compileDirectory(input, output, options) {
let SOURCEMAPPING_URL = 'sourceMa' ;
let SOURCEMAPPING_URL = 'sourceMa' ;
SOURCEMAPPING_URL += 'ppingURL' ;
SOURCEMAPPING_URL += 'ppingURL' ;
function compileFile ( input , output , options ) {
function compileFile ( input , output , options , sourcemap ) {
console . error ( ` compiling ${ path . relative ( process . cwd ( ) , input ) } ... ` ) ; // eslint-disable-line no-console
console . error ( ` compiling ${ path . relative ( process . cwd ( ) , input ) } ... ` ) ; // eslint-disable-line no-console
options = Object . assign ( { } , options ) ;
options = Object . assign ( { } , options ) ;
@ -83,8 +83,7 @@ function compileFile(input, output, options) {
options . filename = input ;
options . filename = input ;
options . outputFilename = output ;
options . outputFilename = output ;
const { sourceMap } = options ;
const inline = sourcemap === 'inline' ;
const inline = sourceMap === 'inline' ;
let source = fs . readFileSync ( input , 'utf-8' ) ;
let source = fs . readFileSync ( input , 'utf-8' ) ;
if ( source [ 0 ] === 0xfeff ) source = source . slice ( 1 ) ;
if ( source [ 0 ] === 0xfeff ) source = source . slice ( 1 ) ;
@ -97,9 +96,11 @@ function compileFile(input, output, options) {
error ( err ) ;
error ( err ) ;
}
}
const { js } = compiled ;
const { js , warnings } = compiled ;
if ( sourceMap ) {
warnings . forEach ( warning = > console . warn ( warning . toString ( ) ) ) ;
if ( sourcemap ) {
js . code += ` \ n//# ${ SOURCEMAPPING_URL } = ${ inline || ! output
js . code += ` \ n//# ${ SOURCEMAPPING_URL } = ${ inline || ! output
? js . map . toUrl ( )
? js . map . toUrl ( )
: ` ${ path . basename ( output ) } .map ` } \ n ` ;
: ` ${ path . basename ( output ) } .map ` } \ n ` ;
@ -110,7 +111,7 @@ function compileFile(input, output, options) {
mkdirp ( outputDir ) ;
mkdirp ( outputDir ) ;
fs . writeFileSync ( output , js . code ) ;
fs . writeFileSync ( output , js . code ) ;
console . error ( ` wrote ${ path . relative ( process . cwd ( ) , output ) } ` ) ; // eslint-disable-line no-console
console . error ( ` wrote ${ path . relative ( process . cwd ( ) , output ) } ` ) ; // eslint-disable-line no-console
if ( source M ap && ! inline ) {
if ( source m ap && ! inline ) {
fs . writeFileSync ( ` ${ output } .map ` , js . map ) ;
fs . writeFileSync ( ` ${ output } .map ` , js . map ) ;
console . error ( ` wrote ${ path . relative ( process . cwd ( ) , ` ${ output } .map ` ) } ` ) ; // eslint-disable-line no-console
console . error ( ` wrote ${ path . relative ( process . cwd ( ) , ` ${ output } .map ` ) } ` ) ; // eslint-disable-line no-console
}
}