Files that are referenced with wp_enqueue_script()
/wp_enqueue_style()
are used in the wp_head()
function.
By the time your shortcode is evaluated this part is already finished, so your files will never be referenced.
You have to add your style using the wp_enqueue_scripts
action:
function my_scripts() {
wp_enqueue_style("myapp2", $pluginpath . 'build/css/style.css');
}
add_action( 'wp_enqueue_scripts', 'my_scripts' );
There is no way around that, because the style belongs in the head.
For your JS though, you can use another parameter to load it in the footer:
wp_enqueue_script('myapp1', $pluginpath . 'build/js/app.min.js', array('jquery'), "1.0", true);
You can add this in your shortcode so at least the JS will only be loaded when it is needed.
(The version number can be anything you want, it is useful to increment it when you release new version of your JS file, so browsers don't use old versions from cache.)