1

Je suis en train de faire mon pipeline d'actifs mis en place selon la Heroku guide for Rails 4, mais quand je rentre cela à la console:Rails/Heroku: Vous ne trouvez pas source de ExecJS SyntaxError jeton inattendu: eof (non définie)

rake assets:precompile RAILS_ENV=production 

Je reçois cette erreur:

rake aborted! 
ExecJS::ProgramError: SyntaxError: Unexpected token: eof (undefined) (line: 46, col: 0, pos: 1394) 

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 block_ (<eval>:3623:28063) 
    at ctor.body (<eval>:3623:27686) 
    at function_ (<eval>:3623:27782) 
    at expr_atom (<eval>:3623:31068) 
    at maybe_unary (<eval>:3624:1752) 
new JS_Parse_Error ((execjs):3623:11948) 
js_error ((execjs):3623:12167) 
croak ((execjs):3623:22038) 
token_error ((execjs):3623:22175) 
unexpected ((execjs):3623:22263) 
block_ ((execjs):3623:28063) 
ctor.body ((execjs):3623:27686) 
function_ ((execjs):3623:27782) 
expr_atom ((execjs):3623:31068) 
maybe_unary ((execjs):3624:1752) 
V8::Error: SyntaxError: Unexpected token: eof (undefined) 
at js_error (<eval>:3623:12167) 
at croak (<eval>:3623:22038) 
at token_error (<eval>:3623:22175) 
at unexpected (<eval>:3623:22263) 
at block_ (<eval>:3623:28063) 
at ctor.body (<eval>:3623:27686) 
at function_ (<eval>:3623:27782) 
at expr_atom (<eval>:3623:31068) 
at maybe_unary (<eval>:3624:1752) 
at expr_ops (<eval>:3624:2523) 
at maybe_conditional (<eval>:3624:2615) 
at maybe_assign (<eval>:3624:3058) 
at expression (<eval>:3624:3384) 
at expr_list (<eval>:3623:31548) 
at subscripts (<eval>:3624:1461) 
at expr_atom (<eval>:3623:31132) 
at maybe_unary (<eval>:3624:1752) 
at expr_ops (<eval>:3624:2523) 
at maybe_conditional (<eval>:3624:2615) 
at maybe_assign (<eval>:3624:3058) 
at expression (<eval>:3624:3384) 
at expr_atom (<eval>:3623:30820) 
at maybe_unary (<eval>:3624:1752) 
at expr_ops (<eval>:3624:2523) 
at maybe_conditional (<eval>:3624:2615) 
at maybe_assign (<eval>:3624:3058) 
at expression (<eval>:3624:3384) 
at simple_statement (<eval>:3623:25942) 
at <eval>:3623:23902 
at <eval>:3623:22954 
at <eval>:3624:3759 
at parse (<eval>:3624:3999) 
at parse (<eval>:3958:22) 
at uglifier (<eval>:4003:13) 
Tasks: TOP => assets:precompile 

J'ai vu d'autres messages sur SO avec des erreurs similaires this et this, mais dans ces deux cas, l'erreur a été assez gentil pour dire quel fichier l'erreur était. Dans mon erreur, je ne vois pas de référence à fichier, donc je suis perplexe sur où aller à partir d'ici. En regardant en arrière, quand j'ai commencé à essayer de résoudre ce problème, il a DID un fichier (ou quelque chose), mais je ne peux pas faire la tête ou la queue (je ne sais pas pourquoi il a arrêté l'emplacement de l'erreur ...):

Error 
    at new JS_Parse_Error (/private/var/folders/hz/1d1f64ln59b4_pl632lm6mpr0000gn/T/execjs20170121-47471-7jr3eejs:3623:11948) 
    at js_error (/private/var/folders/hz/1d1f64ln59b4_pl632lm6mpr0000gn/T/execjs20170121-47471-7jr3eejs:3623:12167) 
    at croak (/private/var/folders/hz/1d1f64ln59b4_pl632lm6mpr0000gn/T/execjs20170121-47471-7jr3eejs:3623:22038) 
    at token_error (/private/var/folders/hz/1d1f64ln59b4_pl632lm6mpr0000gn/T/execjs20170121-47471-7jr3eejs:3623:22175) 
    at unexpected (/private/var/folders/hz/1d1f64ln59b4_pl632lm6mpr0000gn/T/execjs20170121-47471-7jr3eejs:3623:22263) 
    at block_ (/private/var/folders/hz/1d1f64ln59b4_pl632lm6mpr0000gn/T/execjs20170121-47471-7jr3eejs:3623:28063) 
    at /private/var/folders/hz/1d1f64ln59b4_pl632lm6mpr0000gn/T/execjs20170121-47471-7jr3eejs:3623:27686 
    at function_ (/private/var/folders/hz/1d1f64ln59b4_pl632lm6mpr0000gn/T/execjs20170121-47471-7jr3eejs:3623:27782) 
    at expr_atom (/private/var/folders/hz/1d1f64ln59b4_pl632lm6mpr0000gn/T/execjs20170121-47471-7jr3eejs:3623:31068) 
    at maybe_unary (/private/var/folders/hz/1d1f64ln59b4_pl632lm6mpr0000gn/T/execjs20170121-47471-7jr3eejs:3624:1752) 
new JS_Parse_Error ((execjs):3623:11948) 
js_error ((execjs):3623:12167) 
croak ((execjs):3623:22038) 
token_error ((execjs):3623:22175) 
unexpected ((execjs):3623:22263) 
block_ ((execjs):3623:28063) 
(execjs):3623:27686 
function_ ((execjs):3623:27782) 
expr_atom ((execjs):3623:31068) 
maybe_unary ((execjs):3624:1752) 

J'ai regardé dans le répertoire mentionné ici et ne vois aucun fichier pertinent. J'ai cherché tout mon système pour "execjs20170121-47471-7jr3ee" et "execjs20170121-47471-7jr3eejs" sans aucune chance. D'après ce que j'ai lu dans les autres posts, il semble que Uglifier soit en train de commettre une erreur lors de l'analyse de mon Javascript, mais encore une fois, je ne sais pas où chercher pour résoudre le problème.

Des idées?

Répondre

-1

J'ai eu le même problème. Vous devriez voir l'erreur dans vos journaux de production depuis que vous avez exécuté la commande avec "RAILS_ENV = production". Mes journaux de production indiquent: /RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/execjs-2.7.0/lib/execjs/external_runtime.rb in exec at line 39

Ceci est la ligne:

extract_result(@runtime.exec_runtime(filepath), filepath) 

Bien que la ligne me signifie rien, il est évident que c'est une question « filepath ». Il est possible que certaines de vos polices ne soient pas correctement définies. Vous devez faire référence à votre police-urls avec <%= asset_path "..." %> ou SASS-rails comme expliqué here Si cela ne fonctionne toujours pas, essayez de changer: config.assets.compile = false à config.assets.compile = true dans production.rb comme expliqué here