Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
filemanager-webpack-plugin
Advanced tools
Webpack plugin to copy, archive (.zip), move, delete files and directories before and after builds
filemanager-webpack-plugin is a Webpack plugin that allows you to manage files and directories before and after the Webpack build process. It provides functionalities such as copying, moving, deleting, and archiving files and directories.
Copy Files
This feature allows you to copy files from one location to another. In this example, 'file.txt' is copied from the 'src' directory to the 'dist' directory after the Webpack build process ends.
const FileManagerPlugin = require('filemanager-webpack-plugin');
module.exports = {
plugins: [
new FileManagerPlugin({
events: {
onEnd: {
copy: [
{ source: './src/file.txt', destination: './dist/file.txt' }
]
}
}
})
]
};
Move Files
This feature allows you to move files from one location to another. In this example, 'file.txt' is moved from the 'src' directory to the 'dist' directory after the Webpack build process ends.
const FileManagerPlugin = require('filemanager-webpack-plugin');
module.exports = {
plugins: [
new FileManagerPlugin({
events: {
onEnd: {
move: [
{ source: './src/file.txt', destination: './dist/file.txt' }
]
}
}
})
]
};
Delete Files
This feature allows you to delete files. In this example, 'file.txt' is deleted from the 'dist' directory after the Webpack build process ends.
const FileManagerPlugin = require('filemanager-webpack-plugin');
module.exports = {
plugins: [
new FileManagerPlugin({
events: {
onEnd: {
delete: [
'./dist/file.txt'
]
}
}
})
]
};
Archive Files
This feature allows you to archive files into a zip file. In this example, the contents of the 'dist' directory are archived into 'archive.zip' after the Webpack build process ends.
const FileManagerPlugin = require('filemanager-webpack-plugin');
module.exports = {
plugins: [
new FileManagerPlugin({
events: {
onEnd: {
archive: [
{ source: './dist', destination: './dist/archive.zip' }
]
}
}
})
]
};
copy-webpack-plugin is a Webpack plugin that copies individual files or entire directories to the build directory. It is similar to the copy functionality of filemanager-webpack-plugin but does not provide other functionalities like moving, deleting, or archiving files.
clean-webpack-plugin is a Webpack plugin that removes/cleans your build folder(s) before building. It is similar to the delete functionality of filemanager-webpack-plugin but does not provide other functionalities like copying, moving, or archiving files.
webpack-shell-plugin-next is a Webpack plugin that allows you to run shell commands before or after the Webpack build process. It can be used to achieve similar functionalities as filemanager-webpack-plugin by running shell commands for copying, moving, deleting, or archiving files, but it requires more manual setup.
This Webpack plugin allows you to copy, archive (.zip/.tar/.tar.gz), move, delete files and directories before and after builds
npm install filemanager-webpack-plugin --save-dev
# or
yarn add filemanager-webpack-plugin --dev
// webpack.config.js:
const FileManagerPlugin = require('filemanager-webpack-plugin');
export default {
// ...rest of the config
plugins: [
new FileManagerPlugin({
events: {
onEnd: {
copy: [
{ source: '/path/fromfile.txt', destination: '/path/tofile.txt' },
{ source: '/path/**/*.js', destination: '/path' },
],
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: {
// https://github.com/Yqnn/node-readdir-glob#options
dot: true,
},
},
},
],
},
},
}),
],
};
new FileManagerPlugin({
events: {
onStart: {},
onEnd: {},
},
runTasksInSeries: false,
runOnceInWatchMode: false,
});
onStart
: Commands to execute before Webpack begins the bundling processNote:
OnStart might execute twice for file changes in webpack context.
new webpack.WatchIgnorePlugin({
paths: [/copied-directory/],
});
onEnd
: Commands to execute after Webpack has finished the bundling processCopy individual files or entire directories from a source folder to a destination folder. Also supports glob pattern.
[
{ source: '/path/from', destination: '/path/to' },
{
source: '/path/**/*.js',
destination: '/path',
options: {
flat: false,
preserveTimestamps: true,
overwrite: true,
},
globOptions: {
dot: true,
},
},
{ source: '/path/fromfile.txt', destination: '/path/tofile.txt' },
{ source: '/path/**/*.{html,js}', destination: '/path/to' },
{ source: '/path/{file1,file2}.js', destination: '/path/to' },
];
Options
string
] - a file or a directory or a globstring
] - a file or a directory.object
] - copy optionsobject
] - options to forward to glob options(See available options here)Caveats
glob
, destination must be a directoryfile
and destination is a directory, the file will be copied into the directoryDelete individual files or entire directories. Also supports glob pattern
['/path/to/file.txt', '/path/to/directory/', '/another-path/to/directory/**.js'];
or
[
{
source: '/path/to/file.txt',
options: {
force: true,
},
},
];
Move individual files or entire directories.
[
{ source: '/path/from', destination: '/path/to' },
{ source: '/path/fromfile.txt', destination: '/path/tofile.txt' },
];
Options
string
] - a file or a directory or a globstring
] - a file or a directory.Create a directory path with given path
['/path/to/directory/', '/another/directory/'];
Archive individual files or entire directories. Defaults to .zip unless 'format' and 'options' provided. Uses node-archiver
[
{ 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', // optional
options: {
// see https://www.archiverjs.com/docs/archiver
gzip: true,
gzipOptions: {
level: 1,
},
globOptions: {
// https://github.com/Yqnn/node-readdir-glob#options
dot: true,
},
},
},
];
string
] - a file or a directory or a globstring
] - a file.string
] - Optional. Defaults to extension in destination filename.object
] - Refer https://www.archiverjs.com/archiverIf 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:
{
onEnd: [
{
copy: [{ source: './dist/bundle.js', destination: './newfile.js' }],
},
{
delete: ['./dist/bundle.js'],
},
];
}
boolean
] - Run tasks in series. Defaults to falseboolean
] - The onStart
event will be run only once in watch mode. Defaults to falseFor Example, the following will run one after the other
copy: [
{ source: 'dist/index.html', destination: 'dir1/' },
{ source: 'dir1/index.html', destination: 'dir2/' },
];
string
] - The directory, an absolute path, for resolving files. Defaults to webpack context.FAQs
Webpack plugin to copy, archive (.zip), move, delete files and directories before and after builds
The npm package filemanager-webpack-plugin receives a total of 87,839 weekly downloads. As such, filemanager-webpack-plugin popularity was classified as popular.
We found that filemanager-webpack-plugin demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.