2

I have been trying to deploy my rails/browserify application via Heroku, Nginx and Apache and I keep running into the same error. When the assets get precompiled via bundle exec rake assets:precompile db:migrate RAILS_ENV=production one of my JS classes produces a syntax error. I found a similar issue here: ES6 Classes: Unexpected token in script? but I do not have any variable declarations outside of my constructor or methods.

The error:

rake aborted!
ExecJS::RuntimeError: SyntaxError: Unexpected token: name (Game)
JS_Parse_Error.get ((execjs):3538:621)
(execjs):4060:47
(execjs):1:102
Object.<anonymous> ((execjs):1:120)
Module._compile (module.js:571:32)
Object.Module._extensions..js (module.js:580:10)
Module.load (module.js:488:32)
tryModuleLoad (module.js:447:12)
Function.Module._load (module.js:439:3)
Module.runMain (module.js:605:10)

The Javascript class that is producing the syntax error:

class Game {

  constructor(attributes) {
      this.id = attributes.id;
      this.characters = attributes.characters;
      this.quotes = attributes.game_quotes;
      this.state = attributes.state;
      this.completed = attributes.completed;
  }

  score() {
      if (this.completed == true) {
          var score = 0;
          for (var i = 0; i < this.state.length; i++) {
              if (this.state[i] == true) {
                  score++;
              }
          }
          return score;
      } else {
          return "Game Incomplete";
      }
  }

  percentageScore() {
      if (this.score() >= 0) {
          return (this.score() * 10 + "%");
      } else {
          return "Game Incomplete";
      }
  }

  }

Where is the syntax error?

Here is a link to the repository of my application if you need some context: Repository

Any help from the community would be greatly appreciated. Thanks in advance if you can offer any advice.

Joel Hoelting
  • 1,862
  • 2
  • 23
  • 45

1 Answers1

0

The error goes away by commenting out the following line in config/environments/production.rb

config.assets.js_compressor = ...

Joel Hoelting
  • 1,862
  • 2
  • 23
  • 45