Probably the simplest solution is to have the WordPress environment tell your plugin what files to load. On your development install of WP, you should set the constants WP_DEBUG
and SCRIPT_DEBUG
to true. Then in your functions.php or main file of the plugin, you can do something like this for the image path:
if ( defined( 'WP_DEBUG' ) && true === WP_DEBUG ) {
define( 'IMG_PATH', '/path/to/dev/images' );
} else {
define( 'IMG_PATH', '/path/to/S3/bucket' );
}
That will allow you to set your image paths once and have the code load the correct one depending on the environment:
<img src="https://wordpress.stackexchange.com/questions/213764/<?php echo IMG_PATH;?>/header.jpg" />
You can do something similar to this when enqueuing js/css:
//define the base path to our assets
$basepath = plugin_dir_url( __FILE__ );
//setup the production names for the files
$js_file="scripts.min.js";
$css_file="styles-compressed.css";
//check for WP_DEBUG constant status
if( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
//check for SCRIPT_DEBUG constant status
if( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
$js_file="scripts.js";
$css_file="styles-development.css";
}
}
//load the files
wp_enqueue_script( 'plugin_scripts', $basepath . '/js/' . $js_file );
wp_enqueue_style( 'plugin_styles', $basepath . '/css/' . $css_file );
Here is some documentation on debugging in WordPress
Hope this helps!