Javascript eval上的非法令牌(由require()完成的令牌)

Javascript eval上的非法令牌(由require()完成的令牌),javascript,requirejs,comments,eval,Javascript,Requirejs,Comments,Eval,我刚刚在webGL中发布了一个模拟OpenGL1/glu/glut的(草稿)库。 对于一些人来说,演示在我的lib的第一个“require”控制台上崩溃,控制台说“非法令牌”(例如,请参阅第一个演示) 谷歌大量报道非法代币是由于零宽度空间(复制粘贴时经常有秘密乘客)造成的,但在我的文件中并非如此。 那会是什么呢 谢谢 对于一些旧版本的浏览器,我发现了错误:反引号(即模板字符串)-请参阅。Require()使用eval(),如果所需的js文件包含反引号,eval将严重失败 如果你想与IE、Safa

我刚刚在webGL中发布了一个模拟OpenGL1/glu/glut的(草稿)库。 对于一些人来说,演示在我的lib的第一个“require”控制台上崩溃,控制台说“非法令牌”(例如,请参阅第一个演示)

谷歌大量报道非法代币是由于零宽度空间(复制粘贴时经常有秘密乘客)造成的,但在我的文件中并非如此。 那会是什么呢


谢谢

对于一些旧版本的浏览器,我发现了错误:反引号(即模板字符串)-请参阅。Require()使用eval(),如果所需的js文件包含反引号,eval将严重失败


如果你想与IE、Safari和2015年之前的chrome、firefox、opera版本兼容,不要使用反引号:-(但要继续用“…\n”来形容)+每行封装多行字符串,如着色器、帮助文本等。

您将所有JS代码直接内联到HTML文档中,而且所有内容都在全局范围内-为什么您首先坚持使用RequireJS?混合模块化和非模块化代码通常会导致灾难。我使用像include这样的require在C中使用:我不想用我的子包含打扰用户,+我想将它们组织在一个“lib”文件夹中(知道gl matrix已经使用了文件夹和require),让用户只看到他的文件。我不想污染全局空间:-)。无论如何,require()是相当标准的,我的库在大多数机器上都能工作。或者你认为我做错了什么会在第一个require(mylib)(eval(mylib)在某些机器上说“非法令牌”)时引起问题吗?这似乎不是特定于RequireJS的,那么,只是一般性的建议:旧浏览器不使用ES6,因为它们。。。古老的另外,我知道你在看我,因为你之前的评论是通过@针对我的;我刚刚投了第三票,所以是+1/-2;这是我第一次在这里投票。你不应该让人们后悔对你的问题发表评论,因为他们会迫不及待地做出结论。“ES6是新的”:是的,但我根本不知道反引号是最近才出现的一个功能,因为多行字符串是如此自然,并且出现在许多在线图图中。一旦你知道了你正在使用的每个功能的年龄(可能还很年轻),你几乎已经解决了这些bug!我想大多数人都不属于这一类,尤其是JS初学者(我是,尽管在其他语言中是高级的)。不需要JS-specific:true(我不认为我有其他要求:-))。尽管如此,普通人在使用requirejs时还是会遇到问题(甚至不知道它使用的eval有问题)。这就是为什么即使我们谈论eval,我想在这里提到require是非常重要的。顺便说一句,关于你的评论,它并不是很有建设性:你建议不要使用require,但没有提出其他选择(考虑一些需求列表)。作为一个JS的初学者,收到你的句子“混合模块化和非模块化代码通常是灾难的秘诀”有点枯燥:我很想理解它的意思,要注意什么,可能性,也就是说,从你的评论中学习一些东西。附言:无论如何,我不会假装自己是完美的-D干杯;-)