plugins Ġ{ ĊĠĠĠ Ġbase Ċ } Ċ Ċ // ĠFake ĠNPM Ġtask Ġthat Ġwould Ġnormally Ġexecute Ġnpm Ġwith Ġits Ġprovided Ġarguments Ċ abstract Ġclass ĠN pm Task Ġ: ĠDefault Task () Ġ{ ĊĊĠĠĠ Ġ@ get : Input ĊĠĠĠ Ġval Ġargs Ġ= Ġproject . objects . list Property < String >() ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . file ("${ project . build Dir }/ bundle . js "). output Stream (). use Ġ{ Ġstream Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . file (" scripts "). list Files (). sorted (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstream . write ( it . read Bytes ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġtag :: bundle - task [] Ċ tasks . register < N pm Task >(" bundle ") Ġ{ ĊĠĠĠ Ġargs . set ( listOf (" run ", Ġ" bundle ")) ĊĊĠĠĠ Ġoutputs . cache If Ġ{ Ġtrue Ġ} ĊĊĠĠĠ Ġinputs . dir ( file (" scripts ")) ĊĠĠĠĠĠĠĠ Ġ. with PropertyName (" scripts ") ĊĠĠĠĠĠĠĠ Ġ. with Path Sensitivity ( Path Sensitivity . REL ATIVE ) ĊĊĠĠĠ Ġinputs . files (" package . json ", Ġ" package - lock . json ") ĊĠĠĠĠĠĠĠ Ġ. with PropertyName (" config Files ") ĊĠĠĠĠĠĠĠ Ġ. with Path Sensitivity ( Path Sensitivity . REL ATIVE ) ĊĊĠĠĠ Ġoutputs . file ("$ build Dir / bundle . js ") ĊĠĠĠĠĠĠĠ Ġ. with PropertyName (" bundle ") Ċ } Ċ // Ġend :: bundle - task [] Ċ Ċ tasks . register (" print Bundle ") Ġ{ ĊĠĠĠ Ġdepends On (" bundle ") ĊĠĠĠ Ġdo Last Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( file ("$ build Dir / bundle . js "). read Text ()) ĊĠĠĠ Ġ} Ċ } Ċ