2015-07-08 13 views
9

Ho appena eseguito l'aggiornamento a Ember 1.13.3 e Ember Data 1.13.5 e ora visualizzo alcuni messaggi di avviso di deprecazione. In particolare Vedo il seguente messaggio:individuazione di errori di deprecazione

Ember.keys is deprecated in favor of Object.keys 

E con quel messaggio vedo la seguente traccia:

at Object._emberMetalCore.default.deprecateFunc [as keys] (http://localhost:3000/assets/frontend/vendor.self.js?body=1:16037:34) 
     at Ember.DefaultResolver.extend.knownForType (http://localhost:3000/assets/frontend/vendor.self.js?body=1:68044:30) 
     at Function.knownForType (http://localhost:3000/assets/frontend/vendor.self.js?body=1:15302:25) 
     at Object.Registry.knownForType (http://localhost:3000/assets/frontend/vendor.self.js?body=1:12666:39) 
     at Object.Registry.knownForType (http://localhost:3000/assets/frontend/vendor.self.js?body=1:12662:39) 
     at Object.discoverKnownHelpers [as default] (http://localhost:3000/assets/frontend/vendor.self.js?body=1:20504:28) 
     at new RenderEnv (http://localhost:3000/assets/frontend/vendor.self.js?body=1:20775:100) 
     at Function.RenderEnv.build (http://localhost:3000/assets/frontend/vendor.self.js?body=1:20783:12) 
     at Object.renderHTMLBarsBlock (http://localhost:3000/assets/frontend/vendor.self.js?body=1:20831:56) 

Sto avendo difficoltà a capire come posso rintracciare la fonte dei warning di deprecazione da la traccia sopra.

+0

Diritto. Questi avvertimenti sulla deprecazione sono piuttosto criptici e difficili da rintracciare. Il mio approccio è quello di utilizzare l'intera app per 'Ember.keys'. –

risposta

7

Quasi tutti questi avvisi di deprecazione sono causati da Ember Data/HTMLBars, o si passa alle versioni successive o si aspetta.

Nella tua particolare traccia di stack non fa mai riferimento al tuo codice, solo il codice del fornitore. Quindi è un componente aggiuntivo di terze parti, o è quello che ho menzionato in precedenza.

4

Ho anche eseguito l'aggiornamento a Ember 1.13.3 e Data 1.13.5 e ho ricevuto il messaggio di deprecazione Ember.keys.

Per me proveniva dagli inizializzatori del carico nel pacchetto ember-load-initializers.

Sembra che questo sia stato risolto qui https://github.com/ember-cli/ember-load-initializers/commit/78470bed646d76e176c1bc405796b3aeb01940f5 ed è incluso nella release 0.1.5 di inizializzatori di carico ember.

Sembra che questa versione abbia emesso la versione 1.13.1 di Ember, pertanto l'aggiornamento di Ember CLI dovrebbe eliminare il messaggio di deprecazione in questa istanza.


Aggiornamento ho anche continuato a ottenere i messaggi di deprecazione e bower_components greping non ho potuto vedere da dove. Risultò che provenivano da Ember Inspector stesso (v1.8.3), quindi vale sempre la pena di fare un rapido controllo anche lì. Sono già stati corretti (https://github.com/emberjs/ember-inspector/commit/31cc1331e14660084ba3702559afbdff67b973d6), quindi la prossima versione dovrebbe rimuovere il resto.

+0

fantastico, questo ha funzionato. – Moh

2

È difficile in questo momento passare attraverso il percorso di traccia per determinare da dove proviene l'avviso di ritiro. Tuttavia, ciò che ho fatto è stato il seguente:

cd project_directory 
ack Ember.keys > output 

Quali saranno i risultati di uscita SU UN file chiamato output. Aprilo e noterai quali file stanno ancora usando la vecchia sintassi. Ad esempio, nel mio caso:

node_modules/ember-disable-proxy-controllers/dist/assets/vendor.js` 

Line 60458. A questo punto, puoi contattare l'autore per suggerire una correzione. Credo che la soluzione sarebbe quella di sostituire tutte le istanze di Ember.keys con qualcosa di più sensato come (Object.keys || Ember.keys).

Ma tenete presente che si tratta di un avviso di ritiro (che dovrebbe essere risolto in futuro, idealmente) e che non dovrebbe influire sul codice.

+1

buona idea usare ack per cercare tra le dipendenze. – Francois