README
🤪 WPEG - WP Easy Generator
🤓 Installation
$ npm install wpeg --save-dev
🤓 Prepare config
WPEG works only with config in your theme/plugin directory. Create file wpeg.config.js
. Example of file config used in our Lazy Blocks plugins:
const pkg = require( 'json-file' ).read( './package.json' ).data;
const cfg = {};
// Build Paths.
cfg.name = 'lazy-blocks';
cfg.src = './src';
cfg.dist_root = './dist';
cfg.dist = '{dist_root}/{name}';
// Browser sync.
cfg.browser_sync = {
proxy: '{name}.local',
};
// Template variables that will be automatically replaced.
cfg.template_files_src = '{dist}/**/*.{md,php,js,css,pot,json}';
cfg.template_files_variables = {
text_domain: pkg.name,
plugin_version: pkg.version,
plugin_name: pkg.name,
plugin_title: pkg.title,
plugin_author: pkg.author,
};
// Copy files.
cfg.copy_files_src = [
'{src}/**/*',
'!{src}/**/*.{js,jsx,scss}',
'{src}/**/vendor/**/*.{js,jsx,scss}',
];
// Compile SCSS files.
cfg.compile_scss_files_src = [
'{src}/**/*.scss',
'!{src}/**/vendor/**/*',
];
// Create additional CSS files with RTL support.
cfg.compile_scss_files_rtl = false;
// Compile JS files.
cfg.compile_js_files_src = [
'{src}/**/*.js',
'!{src}/**/vendor/**/*',
];
// Compile JSX files.
cfg.compile_jsx_files_src = [
'{src}/*assets/js/index.jsx',
'{src}/*assets/admin/js/blocks.jsx',
];
// Correct line endings files.
cfg.correct_line_endings_files_src = '{dist}/**/*.{js,css}';
// Translate PHP files.
cfg.translate_php_files_src = '{dist}/**/*.php';
cfg.translate_php_files_dist = `{dist}/languages/${ cfg.template_files_variables.plugin_name }.pot`;
cfg.translate_php_options = {
domain: cfg.template_files_variables.text_domain,
package: cfg.template_files_variables.plugin_title,
lastTranslator: cfg.template_files_variables.plugin_author,
team: cfg.template_files_variables.plugin_author,
};
// ZIP files.
cfg.zip_files = [
{
src: '{dist}/**/*',
dist: '{dist_root}/{name}.zip',
},
];
// Watch files.
cfg.watch_files = [
'{src}/**/*',
'!{src}/**/*.{php,jsx,js,scss}',
];
cfg.watch_js_files = [
'{src}/**/*.js',
'!{src}/*vendor/**/*',
];
cfg.watch_jsx_files = [
'{src}/**/*.jsx',
'!{src}/*vendor/**/*',
];
cfg.watch_scss_files = '{src}/**/*.scss';
module.exports = cfg;
🤗 Usage
$ npx wpeg <options>
🤤 Options
-b
,--build
build theme/plugin-w
,--watch
start watch changes in files and automatically run 'build' after changes-z
,--zip
prepare ZIP file after build
🤫 Other options
--config
custom config, by default used automatic way. Custom example:--config="wpeg.config.js"
-h
,--help
show usage information-v
,--version
show version info
😬 Example
$ npx wpeg --build --watch