Решение 1) : временная клавиатура с '0':
(Если часть номера версии может стать более 2 цифрами, padStart можно изменить на 3, 4,...)
var vers = [ '1.10.3.e', '1.9.5.b', '1.7.3', '1.5.1.c' ];
console.log( vers );
var temp = vers.map( function( s ){
return s.split('.').map( function( n ){ return n.padStart(2,'0'); } ).join('.');
} )
temp.sort();
vers = temp.map( function( s ){
return s.split('.').map( function( n ){ return n.replace(/^0+/, ''); } ).join('.');
} )
console.log( temp );
console.log( vers );
Решение 2) : сортировка по целым числам и строкам.
Я бы назвал это более элегантным решением, даже если оно немного сложнее.
(Такой ответ с целыми числами уже дан)