2015-07-08 5 views
9

मैंने अभी एम्बर 1.13.3 और एम्बर डेटा 1.13.5 में अपग्रेड किया है और अब मैं कुछ बहिष्करण चेतावनी संदेश देख रहा हूं। विशेष रूप से मैं निम्न संदेश देखें:बहिष्करण त्रुटियों का स्रोत ढूंढना

Ember.keys is deprecated in favor of Object.keys 

और उस संदेश मैं निम्नलिखित का पता लगाने को देखने के साथ-साथ:

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) 

मैं कठिनाई समझ कैसे मैं से प्रतिवाद चेतावनी के स्रोत नीचे ट्रैक कर सकते हैं हो रही है उपरोक्त निशान

+0

दाएं। ये बहिष्करण चेतावनियां काफी गुप्त और ट्रैक करने के लिए कठिन हैं। मेरा दृष्टिकोण 'Ember.keys' के लिए पूरे ऐप में grep करना है। –

उत्तर

7

लगभग सभी इन बहिष्करण चेतावनियां एम्बर डेटा/एचटीएमएलबार्स के कारण होती हैं, या तो बाद के संस्करणों तक कूदती हैं, या प्रतीक्षा करें।

अपने विशेष स्टैक ट्रेस में यह कभी भी आपके कोड का संदर्भ नहीं दे रहा है, केवल विक्रेता कोड। तो यह या तो तीसरी पार्टी ऐड-ऑन है, या मैंने पहले उल्लेख किया है।

4

मैंने एम्बर 1.13.3 और डेटा 1.13.5 में भी अपग्रेड किया और Ember.keys बहिष्करण संदेश प्राप्त किया।

मेरे लिए यह एम्बर-लोड-प्रारंभिक पैकेज में लोड-प्रारंभकर्ताओं से आ रहा था।

ऐसा लगता है कि यह https://github.com/ember-cli/ember-load-initializers/commit/78470bed646d76e176c1bc405796b3aeb01940f5 पर तय किया गया है और एम्बर-लोड-प्रारंभिक 0.1.5 रिलीज में शामिल है।

ऐसा लगता है कि इस संस्करण ने एम्बर सीएलआई 1.13.1 रिलीज को अपडेट किया ताकि एम्बर सीएलआई को इस उदाहरण में बहिष्करण संदेश से छुटकारा पाना चाहिए।


अद्यतन मैं भी निंदा संदेश और greping bower_components मैं कहाँ से नहीं देख सकता था प्राप्त करने के लिए जारी रखा। बाहर निकल गए वे एम्बर इंस्पेक्टर से ही आ रहे थे (v1.8.3), इसलिए हमेशा वहां एक त्वरित जांच के लायक भी होते हैं। वे पहले से ही तय कर चुके हैं (https://github.com/emberjs/ember-inspector/commit/31cc1331e14660084ba3702559afbdff67b973d6) तो अगली रिलीज बाकी को हटा देना चाहिए।

+0

कमाल, यह काम किया। – Moh

2

इस समय यह पता लगाने के लिए ट्रेस मार्ग से गुजरना मुश्किल है कि बहिष्करण चेतावनी कहां से आ रही है।

cd project_directory 
ack Ember.keys > output 

कौन सा होगा उत्पादन एक फ़ाइल पर परिणाम output कहा जाता है: हालांकि, क्या मैंने किया था निम्नलिखित था। इसे खोलें और आप देखेंगे कि कौन सी फाइलें अभी भी पुरानी वाक्यविन्यास का उपयोग कर रही हैं। उदाहरण के लिए, मेरे मामले में:

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

Line 60458। इस बिंदु पर, आप एक फिक्स का सुझाव देने के लिए लेखक से संपर्क कर सकते हैं। मेरा मानना ​​है कि समाधान Ember.keys के सभी उदाहरणों को (Object.keys || Ember.keys) जैसे कुछ समझदार के साथ प्रतिस्थापित करना होगा।

लेकिन ध्यान रखें, कि यह एक बहिष्करण चेतावनी है (जिसे भविष्य में आदर्श रूप से संबोधित किया जाना चाहिए), और यह कोड को प्रभावित नहीं करना चाहिए।

+1

निर्भरताओं के माध्यम से खोजने के लिए एके का उपयोग करने का अच्छा विचार। – Francois

संबंधित मुद्दे