59 lines
1.2 KiB
JavaScript
59 lines
1.2 KiB
JavaScript
|
|
// Import required packages.
|
|
const mix = require( 'laravel-mix' );
|
|
const rimraf = require( 'rimraf' );
|
|
const fs = require( 'fs' );
|
|
|
|
// Folder name to export the files to.
|
|
let exportPath = 'members-block-permissions';
|
|
|
|
// Theme root-level files to include.
|
|
let files = [
|
|
'changelog.md',
|
|
'license.md',
|
|
'plugin.php',
|
|
'readme.md',
|
|
'uninstall.php'
|
|
];
|
|
|
|
// Folders to include.
|
|
let folders = [
|
|
'src',
|
|
'public'
|
|
];
|
|
|
|
// Delete the previous export to start clean.
|
|
rimraf.sync( exportPath );
|
|
|
|
// Loop through the root files and copy them over.
|
|
files.forEach( file => {
|
|
|
|
if ( fs.existsSync( file ) ) {
|
|
mix.copy( file, `${exportPath}/${file}` );
|
|
}
|
|
} );
|
|
|
|
// Loop through the folders and copy them over.
|
|
folders.forEach( folder => {
|
|
|
|
if ( fs.existsSync( folder ) ) {
|
|
mix.copyDirectory( folder, `${exportPath}/${folder}` );
|
|
}
|
|
} );
|
|
|
|
// Delete the `vendor/bin` and `vendor/composer/installers` folder, which can
|
|
// get left over, even in production. Mix will also create an additional
|
|
// `mix-manifest.json` file in the root, which we don't need.
|
|
mix.then( () => {
|
|
|
|
let files = [
|
|
'mix-manifest.json'
|
|
];
|
|
|
|
files.forEach( file => {
|
|
if ( fs.existsSync( file ) ) {
|
|
rimraf.sync( file );
|
|
}
|
|
} );
|
|
} );
|