javascript中的内联webgl着色器代码

javascript中的内联webgl着色器代码,javascript,shader,webgl,inline-code,multilinestring,Javascript,Shader,Webgl,Inline Code,Multilinestring,我正在编写一个简单的Javascript库,它使用了一些WebGL代码。我希望在.js文件中内联包含着色器源,因为我的备选方案是将它们作为脚本标记包含在每个页面中,或者将它们作为单独的文件加载为AJAX。这两个选项都不是特别模块化的。但是,由于javascript中缺少多行字符串,我对如何内联WebGL代码没有什么好主意。有没有我没想到的方法?每行使用一个字符串,然后将它们连接在一起,例如 var shader = [ "// line1 ", "// line2 ", ].join

我正在编写一个简单的Javascript库,它使用了一些WebGL代码。我希望在.js文件中内联包含着色器源,因为我的备选方案是将它们作为脚本标记包含在每个页面中,或者将它们作为单独的文件加载为AJAX。这两个选项都不是特别模块化的。但是,由于javascript中缺少多行字符串,我对如何内联WebGL代码没有什么好主意。有没有我没想到的方法?

每行使用一个字符串,然后将它们连接在一起,例如

var shader = [
   "// line1 ",
   "// line2 ",
].join('\n');
另外,一般的问题以前在这里讨论过,请看

我最终破解了这个:进入一个代码压缩程序,
用Language.GLSL.Pretty中的
hsep
替换
vcat
的所有实例。我在文件中得到了一行版本的着色器代码,然后我可以将其粘贴到字符串中。当我发布这篇文章时,我希望找到一个类似的解决方案。

这是NetBeans处理这个问题的方式:

var shader = 
"firstLine\n\
secondLine\n\
thirdLine";

我发现这种方式比为每行创建一个数组项更有效。

自2009年以来,除了IE,JavaScript在所有浏览器中都有多行字符串

var shader = `
code
goes
here
`;

+1,这是我所有内联着色器的工作方式。我找到的最好的方法。