yingzi 560ebdb4b8 修改 1 éve
..
lib a6e36702ec 2023-3-1 2 éve
node_modules 560ebdb4b8 修改 1 éve
LICENSE a6e36702ec 2023-3-1 2 éve
README.md a6e36702ec 2023-3-1 2 éve
package.json a6e36702ec 2023-3-1 2 éve

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