2015-11-24 14 views
5

Sto provando a creare un server di pre-rendering per la mia app ember.Pre-rendering Ember: TypeError: 'undefined' non è una funzione (si valuta 'u.bind (e)')

Ho installato ember-prerender (https://github.com/zipfworks/ember-prerender), ho utilizzato gli inizializzatori forniti nell'esempio /, l'ho installato su uno dei miei server.

Ma quando provo a lanciarlo:

[Renderer 0] Engine starting up (phantom) 
[Renderer 0] Restarting rendering engine in 25000 seconds after it failed 
      with error: Phantom encountered an error: TypeError: 
      'undefined' is not a function (evaluating 'u.bind(e)') 

io sono sicuro dove guardare. Ho provato:

  • Eliminazione di tutte le SDK di terze parti (Facebook, Google Analytics)
  • Logging diverse parti del codice (l'evento XContentReady sembra essere licenziato)
  • Avvio con il motore jsdom invece di phantom (dà: [Renderer 0] Restarting renderer, timed out while initializing)
  • Cercando nella produzione

non so dove anche guardare ora. La parte peggiore è che ho avuto a lavorare un paio di giorni fa (vedi: Ember pre-render: timed out while initializing)

EDIT:

non credo che il problema abbia a che fare con il codice, da quando ho fatto un hard reset a una versione che funzionava.

  • Forse qualche versione modificata (bower, npm, phantom)? Ho provato ad aggiornare Bower a 1.6, nessun successo.
  • Forse ho nuove dipendenze che causano il problema? Non vedo esattamente come se

EDIT2: Ho iniziato a fresco su un nuovo server, ora vengo Phantom schiantarsi con questo messaggio di errore:

[Renderer 0] Restarting rendering engine in 25000 seconds 
after it failed with error: Erroneous exit code: null SIGSEGV 

Se uso JSDOM ho ancora ottenere il Restarting renderer, timed out while initializing

MODIFICA 3: Ho provato a includere un polyfill nella mia app. Usando:

  • github.com/es-shims/es5-shim
  • poi come un addon: github.com/pixelhandler/ember-cli-es5-shim

senza successo

EDIT 4: Sto avendo lo stesso errore con un progetto nuovo di zecca, contenente solo ember-prerender, quindi penso che sia collegato alla mia particolare build (version: 1.13.13, node: 0.12.3, npm: 2.14.10, os: linux x64), o pacchetti/configurazione del mio computer.

+0

"Non penso che il problema abbia qualcosa a che fare con il codice" - puoi provare a farlo funzionare sulla nuova e pulita app di Ember per confermare? –

+0

Quando si dice "nuova app ember, intendi che l'endpoint" appUrl "dovrebbe essere diverso da quello che è ora? (' Http: // www.example.com/'), o che l'app embra in esecuzione il pre-rendering dovrebbe essere nuovo (ma allora perché?) – Nicorr

+0

Se potessi eseguire 'ember new whatever' e testarlo su quella nuova applicazione, se funziona può aggiungere il codice dall'applicazione padre per restringere il problema se ne incontri uno, o per trasferire completamente la tua applicazione ed eseguirla senza problemi –

risposta

1

Non ho esperienza con jsdom, ma Function.prototype.bind non è supportato con [email protected] e versioni precedenti. Hai provato [email protected]?

+0

Il problema è che la versione di Phantom è definita da ember-prerender, quindi non posso cambiarla ('" phantom ":"^0.7. 2 "," phantomjs ":"> = 1.9 <1.10 "'). – Nicorr

+0

Ma forse potrei trovare un modo per non avere 'Function.prototype.bind' chiamato dovunque? – Nicorr

+0

Penso che Garret abbia ragione, prova a includere un polyfill nell'app Ember.js come https://github.com/es-shims/es5-shim o come addon : https://github.com/pixelhandler/ember-cli-es5-shim, quindi prova ad eseguirlo di nuovo. Puoi leggere un po 'anche qui: https://github.com/ember-cli/ember-cli/issues/2634 che è un problema simile – Piotr