ExecJS::ProgramError: SyntaxError: 保留字“函数”

Posted

技术标签:

【中文标题】ExecJS::ProgramError: SyntaxError: 保留字“函数”【英文标题】:ExecJS::ProgramError: SyntaxError: Reserved word "function" 【发布时间】:2012-02-19 03:10:33 【问题描述】:

在我们的 rails rfq.js.coffee 中,我们只有一个简单的 js 代码:

$(function() 
  $('#need_report').change(function()
    if ($(this).val() == true) 
      $('#report_language').hide();
      // end if
  );  // end change()
);  // end ready(function)

但是,此代码会导致错误,指出第一行中的 function() 是保留字。由于第一行基本上是一个 jquery $(document).ready(function () ),我们不知道为什么会出现这个错误。有什么想法吗?非常感谢。

【问题讨论】:

等等,这是 CoffeeScript 吗?为什么在 CoffeeScript 中使用普通的 JS? js2coffee.org 将成为你的朋友 【参考方案1】:

你不能在 Coffeescript 文件中使用标准的 JS。将文件重命名为rfq.js,或将其转换为coffeescript:

$ ->
  $('#need_report').change ->
    if $(this).val()
      $('#report_language').hide()

【讨论】:

刚刚将文件重命名为js文件。思想js可以在咖啡脚本中使用,无需任何更改。还找到了一个将 js 转换为咖啡脚本或虎钳诗的网站。 js2coffee.org 谢谢。 是的,它不像 Sass vs CSS,你可以在 scss 文件中使用标准 CSS。 但是,在将rfqs.js.coffee重命名为rfqs.js后,应用程序中的第9574行出现了一个奇怪的错误提示非法字符(application.js中只有大约100行代码)。 js。我将文件名重命名为 .coffee 并且错误消失了。够奇怪的! 我不明白。根据 CoffeeScript 网站:“您可以从 CoffeeScript 无缝使用任何现有的 javascript 库(反之亦然)。”【参考方案2】:

您可以通过用反引号“`”包围代码来嵌入常规 javascript。我希望它也能像其他解析语言一样工作......我花了很多不必要的调试和搜索来解决这个问题。 http://coffeescript.org/#embedded

【讨论】:

【参考方案3】:

也许您将 JavaScript 代码写入扩展名为 .coffee 的文件中,您可以使用 js2.coffee 将您的代码从 JavaScript 转换为 CoffeeSecript

【讨论】:

以上是关于ExecJS::ProgramError: SyntaxError: 保留字“函数”的主要内容,如果未能解决你的问题,请参考以下文章

Pages#home 中的 Rails ExecJS::ProgramError?

ExecJS :: ProgramError:运行rake资产时意外的标记点«(»,预期的点«:»:在生产中进行预编译

ExecJS::ProgramError: SyntaxError: Unexpected token: name <ClassName>

如何调试资产提示语法错误?

关于syn/ack攻击,如何消除阿?!

SYN攻击