Use hyphens only.
Take a look at wp-includes/script-loader.php
:
$scripts->add( 'scriptaculous-sound', '/wp-in
$scripts->add( 'scriptaculous-controls', '/wp
$scripts->add( 'scriptaculous', '', array('sc
// not used in core, replaced by Jcrop.js
$scripts->add( 'cropper', '/wp-includes/js/cr
$scripts->add( 'jquery', '/wp-includes/js/jqu
// full jQuery UI
$scripts->add( 'jquery-ui-core', '/wp-include
$scripts->add( 'jquery-effects-core', '/wp-in
$scripts->add( 'jquery-effects-blind', '/wp-i
$scripts->add( 'jquery-effects-bounce', '/wp-
$scripts->add( 'jquery-effects-clip', '/wp-in
$scripts->add( 'jquery-effects-drop', '/wp-in
$scripts->add( 'jquery-effects-explode', '/wp
$scripts->add( 'jquery-effects-fade', '/wp-in
$scripts->add( 'jquery-effects-fold', '/wp-in
$scripts->add( 'jquery-effects-highlight', '/
$scripts->add( 'jquery-effects-pulsate', '/wp
$scripts->add( 'jquery-effects-scale', '/wp-i
$scripts->add( 'jquery-effects-shake', '/wp-i
$scripts->add( 'jquery-effects-slide', '/wp-i
$scripts->add( 'jquery-effects-transfer', '/w
$scripts->add( 'jquery-ui-accordion', '/wp-in
$scripts->add( 'jquery-ui-autocomplete', '/wp
Yes, I copied a rectangle. 🙂
The unofficial naming scheme is: main library first, then package, then sub-package, all separated by hyphens.
If you follow this scheme – and other developers too! – you lower the risk to enqueue the same library as another plugin just with another name.
Unfortunately, even in core you can find exceptions: 'suggest'
and 'schedule'
are using jQuery …