Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
filemanager-webpack-plugin
Advanced tools
This Webpack plugin allows you 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
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"
]
}
]
})
],
...
}
new FileManagerPlugin(fileEvents, options);
onStart
: Commands to execute before Webpack begins the bundling processonEnd
: Commands to execute after Webpack has finished the bundling processName | 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 } } ] |
v3.0.0-alpha.2 (2020-10-22)
mv
and mkdir
, use fs-extra
insteadubuntu
, windows
and mac
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 125,083 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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.