3

我创建了一个 JavaScript 类(命名为BarChart),它具有构造函数和几个 init 方法。

我执行了以下命令来为生产环境预编译资产,但出现错误。

用于预编译资产的命令:rake assets:precompile RAILS_GROUPS=assets --trace

错误回溯:

rake aborted!
ExecJS::ProgramError: SyntaxError: Unexpected token: name (BarChart) (line: 24472, col: 6, pos: 952834)

Error
    at new JS_Parse_Error (<eval>:3623:11948)
    at js_error (<eval>:3623:12167)
    at croak (<eval>:3623:22038)
    at token_error (<eval>:3623:22175)
    at unexpected (<eval>:3623:22263)
    at semicolon (<eval>:3623:22781)
    at simple_statement (<eval>:3623:25959)
    at <eval>:3623:23747
    at <eval>:3623:22954
    at <eval>:3624:3759
    at Object.parse (<eval>:3624:3999)
    at parse (<eval>:3958:22)

抛出错误的 Javascript 类编写如下:

class BarChart
{
    // code goes here
}

我在 Gemfile 中添加了therubyracer和gem。execjs

Ruby: 2.2.5

Rails:3.2.2`

PS:我在 SO 中检查了几个此类问题,但没有一个问题与JavaScriptclass相关。

4

3 回答 3

1

在您的 BarChart js 文件中,将所有的更改letvar. 然后预编译应该成功。

于 2017-05-15T06:53:57.213 回答
1

我已经编写了 JavaScript,并且 rails 3 在代码中ES6显示错误。ES6在 rails中使用的所有方法ES6都不适用于 rails 3。所以我将 ES6 转换为 ES5 代码。

于 2017-06-15T17:22:14.637 回答
1

在 rails 5 中,我解决了将文件从 .js 重命名为 .js.es6 的问题。奇怪的是,我的暂存部署有效,而我的生产部署却没有。

于 2018-02-22T00:27:50.483 回答