Search code examples
node.jspowershellcommand-line-argumentsnpmuglifyjs

Pipe files to uglifyjs - from Powershell


I would like to pipe my .js files to uglifyjs using windows powershell.

This will not work:

dir .\build -filter *.js | uglifyjs > bundle.js

From the uglifyjs2 docs i can see that uglifyjs takes 2 parameters:

uglifyjs [input files] [options]

I have learned that i can use the pipe operator on functions with one parameter without modifications. But how should i handle 2 parameters?

Also, uglifyjs will write the result to STDOUT. That means that i can simply use > to write it to a file?


Solution

  • It looks like uglifyjs can process multiple filenames or STDIN.

    So I think you have two options:

    Option 1 - Pipe the contents of the file into uglifyjs

    dir .\build -filter *.js | Get-Content | uglifyjs -o bundle.js
    

    Option 2 - Pass the filenames into uglifyjs

    $files = (dir .\build -filter *.js | select -expandproperty Name) -Join " "    
    uglifyjs $files -o bundle.js