This is from the documentation how to attach libraries to a render array of a block plugin and send php variables to js:
Attaching to a render array of a Block Plugin
To give another example of attaching a library to a render array, If
you are building a block plugin in your module, you can attach the
libraries to the render array in the build() function of your class
extending the BlockBase class (as of Drupal 8 beta 6).
return array(
'#theme' => 'your_module_theme_id',
'#someVariable' => $some_variable,
'#attached' => array(
'library' => array(
'your_module/library_name'
),
),
);
Attaching configurable JavaScript
In some cases, you may want to add JavaScript to a page that depends
on some computed PHP information.
In this case, create a JavaScript file, define and attach a library
just like before, but also attach JavaScript settings and have that
JavaScript file read those settings, via drupalSettings (the successor
to Drupal 7's Drupal.settings). However, to make drupalSettings
available to our JavaScript file, we have to do the same work as we
had to do to make jQuery available: we have to declare a dependency on
it.
So that then becomes:
cuddly-slider:
version: 1.x
js:
js/cuddly-slider.js: {}
dependencies:
- core/jquery
- core/drupalSettings
and
$build['#attached']['library'][] = 'fluffiness/cuddly-slider';
$build['#attached']['drupalSettings']['fluffiness']['cuddlySlider']['foo'] = 'bar';
https://www.drupal.org/developing/api/8/assets