@@ -9,11 +9,8 @@ import * as util from "./util";
99let compiledFiles = 0 ;
1010
1111export default function ( commander , filenames , opts ) {
12- function write ( src , relative , base , callback ) {
13- if ( typeof base === "function" ) {
14- callback = base ;
15- base = undefined ;
16- }
12+ function write ( src , base , callback ) {
13+ let relative = path . relative ( base , src ) ;
1714 if ( ! util . isCompilableExtension ( relative , commander . extensions ) ) {
1815 return process . nextTick ( callback ) ;
1916 }
@@ -70,15 +67,11 @@ export default function(commander, filenames, opts) {
7067 }
7168 }
7269
73- function handleFile ( src , filename , base , callback ) {
74- if ( typeof base === "function" ) {
75- callback = base ;
76- base = undefined ;
77- }
78-
79- write ( src , filename , base , function ( err , res ) {
70+ function handleFile ( src , base , callback ) {
71+ write ( src , base , function ( err , res ) {
8072 if ( err ) return callback ( err ) ;
8173 if ( ! res && commander . copyFiles ) {
74+ const filename = path . relative ( base , src ) ;
8275 const dest = getDest ( commander , filename , base ) ;
8376 outputFileSync ( dest , fs . readFileSync ( src ) ) ;
8477 util . chmod ( src , dest ) ;
@@ -102,7 +95,7 @@ export default function(commander, filenames, opts) {
10295 const filename = files [ index ] ;
10396 const src = path . join ( dirname , filename ) ;
10497
105- handleFile ( src , filename , dirname , function ( err ) {
98+ handleFile ( src , dirname , function ( err ) {
10699 if ( err ) return callback ( err ) ;
107100 index ++ ;
108101 if ( index !== files . length ) {
@@ -128,12 +121,7 @@ export default function(commander, filenames, opts) {
128121 const files = util . readdir ( dirname , commander . includeDotfiles ) ;
129122 sequentialHandleFile ( files , dirname , callback ) ;
130123 } else {
131- write (
132- filename ,
133- path . basename ( filename ) ,
134- path . dirname ( filename ) ,
135- callback ,
136- ) ;
124+ write ( filename , path . dirname ( filename ) , callback ) ;
137125 }
138126 }
139127
@@ -163,8 +151,8 @@ export default function(commander, filenames, opts) {
163151 if ( commander . watch ) {
164152 const chokidar = util . requireChokidar ( ) ;
165153
166- filenames . forEach ( function ( dirname ) {
167- const watcher = chokidar . watch ( dirname , {
154+ filenames . forEach ( function ( filenameOrDir ) {
155+ const watcher = chokidar . watch ( filenameOrDir , {
168156 persistent : true ,
169157 ignoreInitial : true ,
170158 awaitWriteFinish : {
@@ -175,14 +163,15 @@ export default function(commander, filenames, opts) {
175163
176164 [ "add" , "change" ] . forEach ( function ( type ) {
177165 watcher . on ( type , function ( filename ) {
178- const relative = path . relative ( dirname , filename ) || filename ;
179- try {
180- handleFile ( filename , relative , function ( err ) {
181- if ( err ) throw err ;
182- } ) ;
183- } catch ( err ) {
184- console . error ( err . stack ) ;
185- }
166+ handleFile (
167+ filename ,
168+ filename === filenameOrDir
169+ ? path . dirname ( filenameOrDir )
170+ : filenameOrDir ,
171+ function ( err ) {
172+ if ( err ) console . error ( err . stack ) ;
173+ } ,
174+ ) ;
186175 } ) ;
187176 } ) ;
188177 } ) ;
News Blog Format Soft Pull Credit Cards