filemanager-webpack-plugin-fixed

2.0.9 • Public • Published

Webpack File Manager Plugin

Build Status NPM Downloads dependencies Status npm version

This Webpack plugin allows you to copy, archive (.zip/.tar/.tar.gz), move, delete files and directories before and after builds

Install

npm install filemanager-webpack-plugin --save-dev

Usage

Webpack.config.js:

const FileManagerPlugin = require('filemanager-webpack-plugin');
 
module.exports = {
  ...
  ...
  plugins: [
    new FileManagerPlugin({
      onEnd: {
        copy: [
          { source: '/path/from', destination: '/path/to' },
          { source: '/path/**/*.js', destination: '/path' },
          { source: '/path/fromfile.txt', destination: '/path/tofile.txt' },
          { source: '/path/**/*.{html,js}', destination: '/path/to' },
          { source: '/path/{file1,file2}.js', destination: '/path/to' },
          { source: '/path/file-[hash].js', destination: '/path/to' }
        ],
        move: [
          { source: '/path/from', destination: '/path/to' },
          { source: '/path/fromfile.txt', destination: '/path/tofile.txt' }
        ],
        delete: [
         '/path/to/file.txt',
         '/path/to/directory/'
        ],
        mkdir: [
         '/path/to/directory/',
         '/another/directory/'
        ],
        archive: [
          { source: '/path/from', destination: '/path/to.zip' },
          { source: '/path/**/*.js', destination: '/path/to.zip' },
          { source: '/path/fromfile.txt', destination: '/path/to.zip' },
          { source: '/path/fromfile.txt', destination: '/path/to.zip', format: 'tar' },
          { 
             source: '/path/fromfile.txt', 
             destination: '/path/to.tar.gz', 
             format: 'tar',
             options: {
               gzip: true,
               gzipOptions: {
                level: 1
               },
               globOptions: {
                nomount: true
               }
             }
           }
 
        ]
      }
    })
  ],
  ...
}

If you need to preserve the order in which operations will run you can set the onStart and onEnd events to be Arrays. In this example below, in the onEnd event the copy action will run first, and then the delete after:

const FileManagerPlugin = require('filemanager-webpack-plugin');
 
module.exports = {
  ...
  ...
  plugins: [
    new FileManagerPlugin({
      onEnd: [
        {
          copy: [
            { source: "./dist/bundle.js", destination: "./newfile.js" }
          ]
        },
        {
          delete: [
            "./dist/bundle.js"
          ]
        }
      ]
    })
  ],
  ...
}
 
 

Options

new FileManagerPlugin(fileEvents, options)

File Events

  • onStart: Commands to execute before Webpack begins the bundling process
  • onEnd: Commands to execute after Webpack has finished the bundling process

File Actions

Name Description Example
copy Copy individual files or entire directories from a source folder to a destination folder. Also supports glob pattern copy: [
{ source: 'dist/bundle.js', destination: '/home/web/js/'
}
]
delete Delete individual files or entire directories. delete: [
'file.txt', '/path/to'
]
move Move individual files or entire directories. move: [
{ source: 'dist/bundle.js', destination: '/home/web/js/'
}
]
mkdir Create a directory path. Think mkdir -p mkdir: [
'/path/to/directory/', '/another/path/'
]
archive Archive individual files or entire directories. Defaults to .zip unless 'format' and 'options' provided. Uses node-archiver archive: [
{ source: 'dist/bundle.js', destination: '/home/web/archive.zip'
format: 'tar' or 'zip'
options: { options passed to archiver }
}
]

Readme

Keywords

Package Sidebar

Install

npm i filemanager-webpack-plugin-fixed

Weekly Downloads

111

Version

2.0.9

License

MIT

Unpacked Size

47.4 kB

Total Files

5

Last publish

Collaborators

  • vizualabstract