Хранение шейдера в теге скрипта - это просто соглашение, которое было выбрано несколькими учебниками по WebGL, чтобы дать шейдеру простое место для «жизни». Его не нужно помещать в тег скрипта для работы.
XHR, вероятно, самый простой способ снять его.
var shaderXhr = new XMLHttpRequest();
shaderXhr.open("GET", "shader.fs", true);
shaderXhr.onload = function() {
yourShaderParsingRoutine(this.responseText);
};
shaderXhr.send(null);