А что тут сложного. Вы для того чтобы узнать src скрипта тревожите JQ - $(scripts[i]).attr('src');, но это ведь можно получить и как this.getAttribute('src'), и сразу разбив его в массив. Если разбить по рег. выражению, одиночному слешу, то можно использовать непосредственно полный url, какая разница вам:
var a = this.src.split(/\/{1}/);
Найденные скрипты в теле страницы и не имеющие атрибута src вернут null, а значит сразу проверив истинность атрибута и есть ли в нем имя плагина, обработаем только нужный url, и да, надо после этого прервать цикл:
$('script').each(function() { //если использовать селектор 'script[src]', то проверку this.src из условия можно убрать
if(this.src && /pluigin_name/i.test(this.src)) {
var a = this.src.split(/\/{1}/);
path = a.slice(0, a.length-1).join('/')+'/'; //соединили элементы массива, как его срез без последнего элемента, в строку через слеш
return false;
}
})
флаг i в рег.выражении для "необязательной" прописи имени плагина с учетом регистра
Если вообще не дергать JQ для этой операции ($('script').each(function()...), то
querySelectorAll().
PS. Не обязательно разбивать url в массив, можно взять только часть строки от начала до позиции последнего найденного слеша.
PPS. Ну еще "из непонятного", хотя это не так:
var path = document.querySelector("script[src*=pluigin_name]").src;
path = path.slice(0, path.lastIndexOf('/')+1)
Только в этом случае нужно учитывать регистр в имени каталога плагина