lhl 6ff0e96ad3 8-4-1 1 år sedan
..
lib 6ff0e96ad3 8-4-1 1 år sedan
node_modules 6ff0e96ad3 8-4-1 1 år sedan
LICENSE 6ff0e96ad3 8-4-1 1 år sedan
README.md 6ff0e96ad3 8-4-1 1 år sedan
package.json 6ff0e96ad3 8-4-1 1 år sedan

README.md

Webpack File Manager Plugin

Build Status 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 }
}
]