Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExecJS::ProgramError:意外字符'#';尝试为生产预编译资产时_Javascript_Ruby On Rails_Ruby On Rails 4_Asset Pipeline - Fatal编程技术网

Javascript ExecJS::ProgramError:意外字符'#';尝试为生产预编译资产时

Javascript ExecJS::ProgramError:意外字符'#';尝试为生产预编译资产时,javascript,ruby-on-rails,ruby-on-rails-4,asset-pipeline,Javascript,Ruby On Rails,Ruby On Rails 4,Asset Pipeline,我正在尝试为Rails 4.1.1应用程序编译资产,使用以下命令Rails\u ENV=production bundle exec rake assets:precompile,但是当Rails尝试编译资产时,它会给我一个错误 错误如下所示: $ RAILS_ENV=production bundle exec rake assets:precompile rake aborted! ExecJS::ProgramError: Unexpected character '#' (line: 1

我正在尝试为Rails 4.1.1应用程序编译资产,使用以下命令
Rails\u ENV=production bundle exec rake assets:precompile
,但是当Rails尝试编译资产时,它会给我一个错误

错误如下所示:

$ RAILS_ENV=production bundle exec rake assets:precompile
rake aborted!
ExecJS::ProgramError: Unexpected character '#' (line: 13079, col: 0, pos: 361024)

Error
    at new JS_Parse_Error (<eval>:2357:10623)
    at js_error (<eval>:2357:10842)
    at parse_error (<eval>:2357:12560)
    at Object.next_token [as input] (<eval>:2357:17582)
    at next (<eval>:2357:18881)
    at semicolon (<eval>:2357:19726)
    at simple_statement (<eval>:2357:22538)
    at <eval>:2357:20689
    at <eval>:2357:19938
    at <eval>:2357:31926
    at Object.parse (<eval>:2358:98)
  (in /opt/rails/crj.com/app/assets/javascripts/application.js)/home/capin/.gem/ruby/2.1.0/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
/home/capin/.gem/ruby/2.1.0/gems/sprockets-rails-2.1.3/lib/sprockets/rails/task.rb:61:in `block (3 levels) in define'
/home/capin/.gem/ruby/2.1.0/gems/sprockets-rails-2.1.3/lib/sprockets/rails/task.rb:60:in `block (2 levels) in define'
V8::Error: Unexpected character '#'
at js_error (<eval>:2357:10842)
at parse_error (<eval>:2357:12560)
at next_token (<eval>:2357:17582)
at next (<eval>:2357:18881)
at semicolon (<eval>:2357:19726)
at simple_statement (<eval>:2357:22538)
at <eval>:2357:20689
at <eval>:2357:19938
at <eval>:2357:31926
at parse (<eval>:2358:98)
at <eval>:19:24
at <eval>:53:3
/home/capin/.gem/ruby/2.1.0/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
/home/capin/.gem/ruby/2.1.0/gems/sprockets-rails-2.1.3/lib/sprockets/rails/task.rb:61:in `block (3 levels) in define'
/home/capin/.gem/ruby/2.1.0/gems/sprockets-rails-2.1.3/lib/sprockets/rails/task.rb:60:in `block (2 levels) in define'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
$RAILS\u ENV=生产包执行rake资产:预编译
雷克流产了!
ExecJS::ProgramError:意外字符“#”(行:13079,列:0,位置:361024)
错误
在新的JS_解析_错误(:2357:10623)
at js_错误(:2357:10842)
at parse_错误(:2357:12560)
at Object.next_标记[作为输入](:2357:17582)
下一站(:2357:18881)
分号(:2357:19726)
在简单的_语句中(:2357:22538)
电话:2357:20689
电话:2357:19938
电话:2357:31926
在Object.parse(:2358:98)
(in/opt/rails/crj.com/app/assets/javascripts/application.js)/home/capin/.gem/ruby/2.1.0/gems/tilt-1.4.1/lib/tilt/template.rb:103:in“render”
/home/capin/.gem/ruby/2.1.0/gems/sprockets-rails-2.1.3/lib/sprockets/rails/task.rb:61:in“定义中的块(3个级别)”中
/home/capin/.gem/ruby/2.1.0/gems/sprockets-rails-2.1.3/lib/sprockets/rails/task.rb:60:in“定义中的块(2个级别)”中
错误:意外字符“#”
at js_错误(:2357:10842)
at parse_错误(:2357:12560)
在下一个令牌(:2357:17582)
下一站(:2357:18881)
分号(:2357:19726)
在简单的_语句中(:2357:22538)
电话:2357:20689
电话:2357:19938
电话:2357:31926
解析时(:2358:98)
时间:19:24
时间:53:3
/home/capin/.gem/ruby/2.1.0/gems/tilt-1.4.1/lib/tilt/template.rb:103:在“渲染”中
/home/capin/.gem/ruby/2.1.0/gems/sprockets-rails-2.1.3/lib/sprockets/rails/task.rb:61:in“定义中的块(3个级别)”中
/home/capin/.gem/ruby/2.1.0/gems/sprockets-rails-2.1.3/lib/sprockets/rails/task.rb:60:in“定义中的块(2个级别)”中
任务:TOP=>资产:预编译
(通过使用--trace运行任务查看完整跟踪)

我尝试使用
--trace
开关/选项运行上面的metiond命令,但对于导致此错误的原因,我有点不知所措。该项目可以在这里完整地查看=>

demo.js是一个JavaScript文件,但使用的是CoffeeScript注释(
#
)而不是JavaScript注释(
/
)。

这很可能是因为rails自动为您生成了一个空的CoffeeScript文件,作为您在项目中生成控制器的一部分。您可能还将coffescript重命名为a.js

在空的js文件中,您会发现coffescript的自动生成注释,它以#开头,而不是javascript使用的//。只要删除所有评论,你就可以开始了

编辑
由于在示例的第13079行中发现了意外的“#”字符,因此您将在同一行中找到您的注释。

请删除任何.js文件中以“#”开头的注释行。

不确定确切的修复方法是什么,但我删除了一些gem,即
execjs
gem,并重新安装了twitter引导gem,现在我的资产正在编译。这个答案帮助我解决了同样的问题。谢谢