ExecJS::ProgramError: SyntaxError: Unexpected token: name <ClassName>
ExecJS::ProgramError: SyntaxError: Unexpected token: name <ClassName>
我创建了一个 JavaScript class(命名为 BarChart
),它具有构造函数和多个初始化方法。
我执行了以下命令为生产环境预编译资产,但出现错误。
用于预编译资产的命令: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 抛出错误的写法如下:
class BarChart
{
// code goes here
}
我在 Gemfile 中添加了 therubyracer
和 execjs
gem。
Ruby
: 2.2.5
Rails
: 3.2.2`
PS:我已经在 SO 中检查了几个此类问题,但是 none 个问题与 JavaScript class
有关.
在您的 BarChart js 文件中,将所有 let
更改为 var
。
那么预编译应该会成功。
我在 ES6
中写了 JavaScript 并且 rails 3 在 ES6
代码中显示错误。所有在rails中使用ES6
的方法都不适用于rails 3.所以我将ES6代码转换为ES5代码。
在 rails 5 中,我解决了将文件从 .js 重命名为 .js.es6 的问题。奇怪的是,我的暂存部署成功了,而我的生产部署却没有。
我创建了一个 JavaScript class(命名为 BarChart
),它具有构造函数和多个初始化方法。
我执行了以下命令为生产环境预编译资产,但出现错误。
用于预编译资产的命令: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 抛出错误的写法如下:
class BarChart
{
// code goes here
}
我在 Gemfile 中添加了 therubyracer
和 execjs
gem。
Ruby
: 2.2.5
Rails
: 3.2.2`
PS:我已经在 SO 中检查了几个此类问题,但是 none 个问题与 JavaScript class
有关.
在您的 BarChart js 文件中,将所有 let
更改为 var
。
那么预编译应该会成功。
我在 ES6
中写了 JavaScript 并且 rails 3 在 ES6
代码中显示错误。所有在rails中使用ES6
的方法都不适用于rails 3.所以我将ES6代码转换为ES5代码。
在 rails 5 中,我解决了将文件从 .js 重命名为 .js.es6 的问题。奇怪的是,我的暂存部署成功了,而我的生产部署却没有。