我一直在尝试通过Heroku,Nginx和Apache部署我的rails / browserify应用程序,并且我一直遇到同样的错误。当资产通过bundle exec rake assets:precompile db:migrate RAILS_ENV=production
进行预编译时,我的一个JS类会产生语法错误。我在这里发现了一个类似的问题:ES6 Classes: Unexpected token in script?
但是我的构造函数或方法之外没有任何变量声明。
错误:
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)
产生语法错误的Javascript类:
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";
}
}
}
语法错误在哪里?
如果您需要一些上下文,请输入我的应用程序的存储库:Repository
非常感谢社区的任何帮助。如果您能提供任何建议,请提前致谢。
答案 0 :(得分:0)
通过在config/environments/production.rb
config.assets.js_compressor = ...